git →
1:2.40.1-1 →
armhf → 2023-09-16 19:42:01
sbuild (Debian sbuild) 0.72.0 (25 Oct 2016) on mb-lxc-02
+==============================================================================+
| git 1:2.40.1-1 (armhf) Sat, 16 Sep 2023 19:01:37 +0000 |
+==============================================================================+
Package: git
Version: 1:2.40.1-1
Source Version: 1:2.40.1-1
Distribution: trixie-staging
Machine Architecture: armhf
Host Architecture: armhf
Build Architecture: armhf
I: NOTICE: Log filtering will replace 'var/lib/schroot/mount/trixie-staging-armhf-sbuild-3d4a540f-4386-40eb-99bb-7b7120a0f495' with '<<CHROOT>>'
+------------------------------------------------------------------------------+
| Update chroot |
+------------------------------------------------------------------------------+
Get:1 http://172.17.4.1/private trixie-staging InRelease [11.3 kB]
Get:2 http://172.17.4.1/private trixie-staging/main Sources [14.1 MB]
Get:3 http://172.17.4.1/private trixie-staging/main armhf Packages [14.6 MB]
Fetched 28.7 MB in 11s (2595 kB/s)
Reading package lists...
W: No sandbox user '_apt' on the system, can not drop privileges
W: http://172.17.4.1/private/dists/trixie-staging/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
+------------------------------------------------------------------------------+
| Fetch source files |
+------------------------------------------------------------------------------+
Check APT
---------
Checking available source versions...
Download source files with APT
------------------------------
Reading package lists...
NOTICE: 'git' packaging is maintained in the 'Git' version control system at:
https://repo.or.cz/r/git/debian.git/
Please use:
git clone https://repo.or.cz/r/git/debian.git/
to retrieve the latest (possibly unreleased) updates to the package.
Need to get 7935 kB of source archives.
Get:1 http://172.17.4.1/private trixie-staging/main git 1:2.40.1-1 (dsc) [2825 B]
Get:2 http://172.17.4.1/private trixie-staging/main git 1:2.40.1-1 (tar) [7185 kB]
Get:3 http://172.17.4.1/private trixie-staging/main git 1:2.40.1-1 (diff) [746 kB]
Fetched 7935 kB in 1s (8336 kB/s)
Download complete and in download only mode
I: NOTICE: Log filtering will replace 'build/git-Q671zK/git-2.40.1' with '<<PKGBUILDDIR>>'
I: NOTICE: Log filtering will replace 'build/git-Q671zK' with '<<BUILDDIR>>'
+------------------------------------------------------------------------------+
| Install build-essential |
+------------------------------------------------------------------------------+
Setup apt archive
-----------------
Merged Build-Depends: build-essential, fakeroot
Filtered Build-Depends: build-essential, fakeroot
dpkg-deb: building package 'sbuild-build-depends-core-dummy' in '/<<BUILDDIR>>/resolver-GyaCIw/apt_archive/sbuild-build-depends-core-dummy.deb'.
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning: sbuild-build-depends-core-dummy
dpkg-scanpackages: info: Wrote 1 entries to output Packages file.
gpg: keybox '/<<BUILDDIR>>/resolver-GyaCIw/gpg/pubring.kbx' created
gpg: /<<BUILDDIR>>/resolver-GyaCIw/gpg/trustdb.gpg: trustdb created
gpg: key 37145E60F90AF620: public key "Sbuild Signer (Sbuild Build Dependency Archive Key) <buildd-tools-devel@lists.alioth.debian.org>" imported
gpg: Total number processed: 1
gpg: imported: 1
gpg: key 37145E60F90AF620: "Sbuild Signer (Sbuild Build Dependency Archive Key) <buildd-tools-devel@lists.alioth.debian.org>" not changed
gpg: key 37145E60F90AF620: secret key imported
gpg: Total number processed: 1
gpg: unchanged: 1
gpg: secret keys read: 1
gpg: secret keys imported: 1
gpg: using "Sbuild Signer" as default secret key for signing
Ign:1 copy:/<<BUILDDIR>>/resolver-GyaCIw/apt_archive ./ InRelease
Get:2 copy:/<<BUILDDIR>>/resolver-GyaCIw/apt_archive ./ Release [957 B]
Get:3 copy:/<<BUILDDIR>>/resolver-GyaCIw/apt_archive ./ Release.gpg [370 B]
Get:4 copy:/<<BUILDDIR>>/resolver-GyaCIw/apt_archive ./ Sources [349 B]
Get:5 copy:/<<BUILDDIR>>/resolver-GyaCIw/apt_archive ./ Packages [434 B]
Fetched 2110 B in 0s (5084 B/s)
Reading package lists...
W: No sandbox user '_apt' on the system, can not drop privileges
Reading package lists...
Install core build dependencies (apt-based resolver)
----------------------------------------------------
Installing build dependencies
Reading package lists...
Building dependency tree...
Reading state information...
The following packages were automatically installed and are no longer required:
krb5-locales libpam-cap netbase sensible-utils sgml-base
Use 'apt autoremove' to remove them.
The following NEW packages will be installed:
sbuild-build-depends-core-dummy
0 upgraded, 1 newly installed, 0 to remove and 22 not upgraded.
Need to get 856 B of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 copy:/<<BUILDDIR>>/resolver-GyaCIw/apt_archive ./ sbuild-build-depends-core-dummy 0.invalid.0 [856 B]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 856 B in 0s (68.9 kB/s)
Selecting previously unselected package sbuild-build-depends-core-dummy.
(Reading database ... 11771 files and directories currently installed.)
Preparing to unpack .../sbuild-build-depends-core-dummy_0.invalid.0_armhf.deb ...
Unpacking sbuild-build-depends-core-dummy (0.invalid.0) ...
Setting up sbuild-build-depends-core-dummy (0.invalid.0) ...
W: No sandbox user '_apt' on the system, can not drop privileges
+------------------------------------------------------------------------------+
| Check architectures |
+------------------------------------------------------------------------------+
Arch check ok (armhf included in any all)
+------------------------------------------------------------------------------+
| Install package build dependencies |
+------------------------------------------------------------------------------+
Setup apt archive
-----------------
Merged Build-Depends: libz-dev, gettext, libpcre2-dev | libpcre3-dev, libcurl4-gnutls-dev, libexpat1-dev, subversion, libsvn-perl, libyaml-perl, tcl, python3, libhttp-date-perl | libtime-parsedate-perl, libcgi-pm-perl, liberror-perl, libmailtools-perl, cvs, cvsps, libdbd-sqlite3-perl, unzip, libio-pty-perl, debhelper-compat (= 10), dh-exec (>= 0.7), dh-apache2, dpkg-dev (>= 1.16.2~)
Filtered Build-Depends: libz-dev, gettext, libpcre2-dev, libcurl4-gnutls-dev, libexpat1-dev, subversion, libsvn-perl, libyaml-perl, tcl, python3, libhttp-date-perl, libcgi-pm-perl, liberror-perl, libmailtools-perl, cvs, cvsps, libdbd-sqlite3-perl, unzip, libio-pty-perl, debhelper-compat (= 10), dh-exec (>= 0.7), dh-apache2, dpkg-dev (>= 1.16.2~)
dpkg-deb: building package 'sbuild-build-depends-git-dummy' in '/<<BUILDDIR>>/resolver-GyaCIw/apt_archive/sbuild-build-depends-git-dummy.deb'.
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning: sbuild-build-depends-core-dummy sbuild-build-depends-git-dummy
dpkg-scanpackages: info: Wrote 2 entries to output Packages file.
gpg: using "Sbuild Signer" as default secret key for signing
Ign:1 copy:/<<BUILDDIR>>/resolver-GyaCIw/apt_archive ./ InRelease
Get:2 copy:/<<BUILDDIR>>/resolver-GyaCIw/apt_archive ./ Release [963 B]
Get:3 copy:/<<BUILDDIR>>/resolver-GyaCIw/apt_archive ./ Release.gpg [370 B]
Get:4 copy:/<<BUILDDIR>>/resolver-GyaCIw/apt_archive ./ Sources [661 B]
Get:5 copy:/<<BUILDDIR>>/resolver-GyaCIw/apt_archive ./ Packages [727 B]
Fetched 2721 B in 0s (11.8 kB/s)
Reading package lists...
W: No sandbox user '_apt' on the system, can not drop privileges
Reading package lists...
Install git build dependencies (apt-based resolver)
---------------------------------------------------
Installing build dependencies
Reading package lists...
Building dependency tree...
Reading state information...
The following packages were automatically installed and are no longer required:
krb5-locales libpam-cap sgml-base
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
apache2-dev autoconf automake autopoint autotools-dev bsdextrautils cvs
cvsps debhelper dh-autoreconf dh-exec dh-strip-nondeterminism dwz file
gettext gettext-base groff-base intltool-debian libapr1 libapr1-dev
libaprutil1 libaprutil1-dev libarchive-zip-perl libbrotli1 libbsd0
libcgi-pm-perl libcurl3-gnutls libcurl4-gnutls-dev libdbd-sqlite3-perl
libdbi-perl libdebhelper-perl libelf1 liberror-perl libexpat1 libexpat1-dev
libfile-stripnondeterminism-perl libhtml-parser-perl libhtml-tagset-perl
libhttp-date-perl libicu72 libio-pty-perl libio-socket-ssl-perl libldap-dev
libldap2-dev libmagic-mgc libmagic1 libmailtools-perl libnet-smtp-ssl-perl
libnet-ssleay-perl libnghttp2-14 libpcre2-16-0 libpcre2-32-0 libpcre2-8-0
libpcre2-dev libpcre2-posix3 libpipeline1 libpsl5 libpython3-stdlib
libpython3.11-minimal libpython3.11-stdlib librtmp1 libsctp-dev libsctp1
libserf-1-1 libssh2-1 libsub-override-perl libsvn-perl libsvn1 libtcl8.6
libtimedate-perl libtool libuchardet0 liburi-perl libutf8proc2 libxml2
libyaml-perl m4 man-db media-types openssl perl-openssl-defaults po-debconf
python3 python3-minimal python3.11 python3.11-minimal subversion tcl tcl8.6
unzip uuid-dev zlib1g zlib1g-dev
Suggested packages:
autoconf-archive gnu-standards autoconf-doc mksh rcs dh-make gettext-doc
libasprintf-dev libgettextpo-dev groff libcurl4-doc libgnutls28-dev
libidn-dev libkrb5-dev librtmp-dev libssh2-1-dev pkg-config libclone-perl
libmldbm-perl libnet-daemon-perl libsql-statement-perl libdata-dump-perl
ca-certificates lksctp-tools libtool-doc gfortran | fortran95-compiler
gcj-jdk libbusiness-isbn-perl libregexp-ipv6-perl libwww-perl
libyaml-shell-perl m4-doc apparmor less www-browser libmail-box-perl
python3-doc python3-tk python3-venv python3.11-venv python3.11-doc
binfmt-support db5.3-util libapache2-mod-svn subversion-tools
tcl-tclreadline zip
Recommended packages:
openssh-client curl | wget | lynx libcgi-fast-perl ca-certificates
libarchive-cpio-perl libhttp-message-perl libauthen-sasl-perl publicsuffix
libltdl-dev libyaml-libyaml-perl | libyaml-syck-perl libmail-sendmail-perl
The following NEW packages will be installed:
apache2-dev autoconf automake autopoint autotools-dev bsdextrautils cvs
cvsps debhelper dh-autoreconf dh-exec dh-strip-nondeterminism dwz file
gettext gettext-base groff-base intltool-debian libapr1 libapr1-dev
libaprutil1 libaprutil1-dev libarchive-zip-perl libbrotli1 libbsd0
libcgi-pm-perl libcurl3-gnutls libcurl4-gnutls-dev libdbd-sqlite3-perl
libdbi-perl libdebhelper-perl libelf1 liberror-perl libexpat1 libexpat1-dev
libfile-stripnondeterminism-perl libhtml-parser-perl libhtml-tagset-perl
libhttp-date-perl libicu72 libio-pty-perl libio-socket-ssl-perl libldap-dev
libldap2-dev libmagic-mgc libmagic1 libmailtools-perl libnet-smtp-ssl-perl
libnet-ssleay-perl libnghttp2-14 libpcre2-16-0 libpcre2-32-0 libpcre2-dev
libpcre2-posix3 libpipeline1 libpsl5 libpython3-stdlib libpython3.11-minimal
libpython3.11-stdlib librtmp1 libsctp-dev libsctp1 libserf-1-1 libssh2-1
libsub-override-perl libsvn-perl libsvn1 libtcl8.6 libtimedate-perl libtool
libuchardet0 liburi-perl libutf8proc2 libxml2 libyaml-perl m4 man-db
media-types openssl perl-openssl-defaults po-debconf python3 python3-minimal
python3.11 python3.11-minimal sbuild-build-depends-git-dummy subversion tcl
tcl8.6 unzip uuid-dev zlib1g-dev
The following packages will be upgraded:
libpcre2-8-0 zlib1g
2 upgraded, 92 newly installed, 0 to remove and 20 not upgraded.
Need to get 39.3 MB of archives.
After this operation, 150 MB of additional disk space will be used.
Get:1 copy:/<<BUILDDIR>>/resolver-GyaCIw/apt_archive ./ sbuild-build-depends-git-dummy 0.invalid.0 [1016 B]
Get:2 http://172.17.4.1/private trixie-staging/main armhf libpython3.11-minimal armhf 3.11.5-3 [800 kB]
Get:3 http://172.17.4.1/private trixie-staging/main armhf libexpat1 armhf 2.5.0-1 [77.2 kB]
Get:4 http://172.17.4.1/private trixie-staging/main armhf zlib1g armhf 1:1.2.13.dfsg-3 [73.6 kB]
Get:5 http://172.17.4.1/private trixie-staging/main armhf python3.11-minimal armhf 3.11.5-3 [1676 kB]
Get:6 http://172.17.4.1/private trixie-staging/main armhf python3-minimal armhf 3.11.2-1 [26.0 kB]
Get:7 http://172.17.4.1/private trixie-staging/main armhf media-types all 10.1.0 [26.9 kB]
Get:8 http://172.17.4.1/private trixie-staging/main armhf libpython3.11-stdlib armhf 3.11.5-3 [1675 kB]
Get:9 http://172.17.4.1/private trixie-staging/main armhf python3.11 armhf 3.11.5-3 [582 kB]
Get:10 http://172.17.4.1/private trixie-staging/main armhf libpython3-stdlib armhf 3.11.2-1 [9012 B]
Get:11 http://172.17.4.1/private trixie-staging/main armhf python3 armhf 3.11.2-1 [26.0 kB]
Get:12 http://172.17.4.1/private trixie-staging/main armhf libpcre2-8-0 armhf 10.42-4 [225 kB]
Get:13 http://172.17.4.1/private trixie-staging/main armhf libuchardet0 armhf 0.0.7-1 [65.0 kB]
Get:14 http://172.17.4.1/private trixie-staging/main armhf groff-base armhf 1.22.4-10 [774 kB]
Get:15 http://172.17.4.1/private trixie-staging/main armhf bsdextrautils armhf 2.38.1-5 [78.5 kB]
Get:16 http://172.17.4.1/private trixie-staging/main armhf libpipeline1 armhf 1.5.7-1 [33.4 kB]
Get:17 http://172.17.4.1/private trixie-staging/main armhf man-db armhf 2.11.2-2 [1342 kB]
Get:18 http://172.17.4.1/private trixie-staging/main armhf libmagic-mgc armhf 1:5.44-3 [305 kB]
Get:19 http://172.17.4.1/private trixie-staging/main armhf libmagic1 armhf 1:5.44-3 [95.3 kB]
Get:20 http://172.17.4.1/private trixie-staging/main armhf file armhf 1:5.44-3 [41.5 kB]
Get:21 http://172.17.4.1/private trixie-staging/main armhf gettext-base armhf 0.21-12 [156 kB]
Get:22 http://172.17.4.1/private trixie-staging/main armhf autotools-dev all 20220109.1 [51.6 kB]
Get:23 http://172.17.4.1/private trixie-staging/main armhf m4 armhf 1.4.19-3 [256 kB]
Get:24 http://172.17.4.1/private trixie-staging/main armhf autoconf all 2.71-3 [332 kB]
Get:25 http://172.17.4.1/private trixie-staging/main armhf automake all 1:1.16.5-1.3 [823 kB]
Get:26 http://172.17.4.1/private trixie-staging/main armhf autopoint all 0.21-13 [496 kB]
Get:27 http://172.17.4.1/private trixie-staging/main armhf libdebhelper-perl all 13.11.6 [81.9 kB]
Get:28 http://172.17.4.1/private trixie-staging/main armhf libtool all 2.4.7-7 [517 kB]
Get:29 http://172.17.4.1/private trixie-staging/main armhf dh-autoreconf all 20 [17.1 kB]
Get:30 http://172.17.4.1/private trixie-staging/main armhf libarchive-zip-perl all 1.68-1 [104 kB]
Get:31 http://172.17.4.1/private trixie-staging/main armhf libsub-override-perl all 0.09-4 [9304 B]
Get:32 http://172.17.4.1/private trixie-staging/main armhf libfile-stripnondeterminism-perl all 1.13.1-1 [19.4 kB]
Get:33 http://172.17.4.1/private trixie-staging/main armhf dh-strip-nondeterminism all 1.13.1-1 [8620 B]
Get:34 http://172.17.4.1/private trixie-staging/main armhf libelf1 armhf 0.188-2.1+rpi1 [171 kB]
Get:35 http://172.17.4.1/private trixie-staging/main armhf dwz armhf 0.15-1 [92.4 kB]
Get:36 http://172.17.4.1/private trixie-staging/main armhf libicu72 armhf 72.1-3 [9009 kB]
Get:37 http://172.17.4.1/private trixie-staging/main armhf libxml2 armhf 2.9.14+dfsg-1.3 [571 kB]
Get:38 http://172.17.4.1/private trixie-staging/main armhf gettext armhf 0.21-12 [1201 kB]
Get:39 http://172.17.4.1/private trixie-staging/main armhf intltool-debian all 0.35.0+20060710.6 [22.9 kB]
Get:40 http://172.17.4.1/private trixie-staging/main armhf po-debconf all 1.0.21+nmu1 [248 kB]
Get:41 http://172.17.4.1/private trixie-staging/main armhf debhelper all 13.11.6 [952 kB]
Get:42 http://172.17.4.1/private trixie-staging/main armhf libapr1 armhf 1.7.2-3 [82.4 kB]
Get:43 http://172.17.4.1/private trixie-staging/main armhf uuid-dev armhf 2.38.1-5 [37.7 kB]
Get:44 http://172.17.4.1/private trixie-staging/main armhf libsctp1 armhf 1.0.19+dfsg-2 [29.1 kB]
Get:45 http://172.17.4.1/private trixie-staging/main armhf libsctp-dev armhf 1.0.19+dfsg-2 [71.5 kB]
Get:46 http://172.17.4.1/private trixie-staging/main armhf libapr1-dev armhf 1.7.2-3 [732 kB]
Get:47 http://172.17.4.1/private trixie-staging/main armhf libaprutil1 armhf 1.6.3-1 [75.2 kB]
Get:48 http://172.17.4.1/private trixie-staging/main armhf libldap-dev armhf 2.5.13+dfsg-5+rpi1 [259 kB]
Get:49 http://172.17.4.1/private trixie-staging/main armhf libldap2-dev all 2.5.13+dfsg-5+rpi1 [22.7 kB]
Get:50 http://172.17.4.1/private trixie-staging/main armhf libexpat1-dev armhf 2.5.0-1 [130 kB]
Get:51 http://172.17.4.1/private trixie-staging/main armhf libaprutil1-dev armhf 1.6.3-1 [397 kB]
Get:52 http://172.17.4.1/private trixie-staging/main armhf libpcre2-16-0 armhf 10.42-4 [211 kB]
Get:53 http://172.17.4.1/private trixie-staging/main armhf libpcre2-32-0 armhf 10.42-4 [201 kB]
Get:54 http://172.17.4.1/private trixie-staging/main armhf libpcre2-posix3 armhf 10.42-4 [55.1 kB]
Get:55 http://172.17.4.1/private trixie-staging/main armhf libpcre2-dev armhf 10.42-4 [648 kB]
Get:56 http://172.17.4.1/private trixie-staging/main armhf openssl armhf 3.0.9-1 [1365 kB]
Get:57 http://172.17.4.1/private trixie-staging/main armhf apache2-dev armhf 2.4.57-3 [306 kB]
Get:58 http://172.17.4.1/private trixie-staging/main armhf libbsd0 armhf 0.11.7-4 [111 kB]
Get:59 http://172.17.4.1/private trixie-staging/main armhf cvs armhf 2:1.12.13+real-28+deb12u1 [2737 kB]
Get:60 http://172.17.4.1/private trixie-staging/main armhf cvsps armhf 2.1-8 [43.3 kB]
Get:61 http://172.17.4.1/private trixie-staging/main armhf dh-exec armhf 0.27+b1 [23.4 kB]
Get:62 http://172.17.4.1/private trixie-staging/main armhf libbrotli1 armhf 1.0.9-2+b3 [258 kB]
Get:63 http://172.17.4.1/private trixie-staging/main armhf libhtml-tagset-perl all 3.20-6 [11.7 kB]
Get:64 http://172.17.4.1/private trixie-staging/main armhf liburi-perl all 5.21-1 [95.6 kB]
Get:65 http://172.17.4.1/private trixie-staging/main armhf libhtml-parser-perl armhf 3.81-1 [97.2 kB]
Get:66 http://172.17.4.1/private trixie-staging/main armhf libcgi-pm-perl all 4.57-1 [221 kB]
Get:67 http://172.17.4.1/private trixie-staging/main armhf libnghttp2-14 armhf 1.52.0-1 [60.6 kB]
Get:68 http://172.17.4.1/private trixie-staging/main armhf libpsl5 armhf 0.21.2-1 [57.5 kB]
Get:69 http://172.17.4.1/private trixie-staging/main armhf librtmp1 armhf 2.4+20151223.gitfa8646d.1-2+b2 [54.2 kB]
Get:70 http://172.17.4.1/private trixie-staging/main armhf libssh2-1 armhf 1.11.0-2 [195 kB]
Get:71 http://172.17.4.1/private trixie-staging/main armhf libcurl3-gnutls armhf 7.88.1-10+rpi1 [337 kB]
Get:72 http://172.17.4.1/private trixie-staging/main armhf libcurl4-gnutls-dev armhf 7.88.1-10+rpi1 [419 kB]
Get:73 http://172.17.4.1/private trixie-staging/main armhf libdbi-perl armhf 1.643-4 [763 kB]
Get:74 http://172.17.4.1/private trixie-staging/main armhf libdbd-sqlite3-perl armhf 1.72-1 [171 kB]
Get:75 http://172.17.4.1/private trixie-staging/main armhf liberror-perl all 0.17029-2 [29.0 kB]
Get:76 http://172.17.4.1/private trixie-staging/main armhf libtimedate-perl all 2.3300-2 [39.3 kB]
Get:77 http://172.17.4.1/private trixie-staging/main armhf libhttp-date-perl all 6.05-2 [10.5 kB]
Get:78 http://172.17.4.1/private trixie-staging/main armhf libio-pty-perl armhf 1:1.17-1 [34.7 kB]
Get:79 http://172.17.4.1/private trixie-staging/main armhf perl-openssl-defaults armhf 7+b1 [7916 B]
Get:80 http://172.17.4.1/private trixie-staging/main armhf libnet-ssleay-perl armhf 1.92-2+b2 [297 kB]
Get:81 http://172.17.4.1/private trixie-staging/main armhf libio-socket-ssl-perl all 2.083-1 [218 kB]
Get:82 http://172.17.4.1/private trixie-staging/main armhf libnet-smtp-ssl-perl all 1.04-2 [6548 B]
Get:83 http://172.17.4.1/private trixie-staging/main armhf libmailtools-perl all 2.21-2 [95.6 kB]
Get:84 http://172.17.4.1/private trixie-staging/main armhf libserf-1-1 armhf 1.3.10-1 [44.1 kB]
Get:85 http://172.17.4.1/private trixie-staging/main armhf libutf8proc2 armhf 2.8.0-1+rpi1 [59.1 kB]
Get:86 http://172.17.4.1/private trixie-staging/main armhf libsvn1 armhf 1.14.2-4+b1 [1180 kB]
Get:87 http://172.17.4.1/private trixie-staging/main armhf libsvn-perl armhf 1.14.2-4+b1 [857 kB]
Get:88 http://172.17.4.1/private trixie-staging/main armhf libtcl8.6 armhf 8.6.13+dfsg-2 [904 kB]
Get:89 http://172.17.4.1/private trixie-staging/main armhf libyaml-perl all 1.30-2 [63.4 kB]
Get:90 http://172.17.4.1/private trixie-staging/main armhf subversion armhf 1.14.2-4+b1 [935 kB]
Get:91 http://172.17.4.1/private trixie-staging/main armhf tcl8.6 armhf 8.6.13+dfsg-2 [120 kB]
Get:92 http://172.17.4.1/private trixie-staging/main armhf tcl armhf 8.6.13 [4016 B]
Get:93 http://172.17.4.1/private trixie-staging/main armhf unzip armhf 6.0-28 [147 kB]
Get:94 http://172.17.4.1/private trixie-staging/main armhf zlib1g-dev armhf 1:1.2.13.dfsg-3 [901 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 39.3 MB in 5s (8414 kB/s)
Selecting previously unselected package libpython3.11-minimal:armhf.
(Reading database ... 11771 files and directories currently installed.)
Preparing to unpack .../libpython3.11-minimal_3.11.5-3_armhf.deb ...
Unpacking libpython3.11-minimal:armhf (3.11.5-3) ...
Selecting previously unselected package libexpat1:armhf.
Preparing to unpack .../libexpat1_2.5.0-1_armhf.deb ...
Unpacking libexpat1:armhf (2.5.0-1) ...
Preparing to unpack .../zlib1g_1%3a1.2.13.dfsg-3_armhf.deb ...
Unpacking zlib1g:armhf (1:1.2.13.dfsg-3) over (1:1.2.13.dfsg-1) ...
Setting up zlib1g:armhf (1:1.2.13.dfsg-3) ...
Selecting previously unselected package python3.11-minimal.
(Reading database ... 12076 files and directories currently installed.)
Preparing to unpack .../python3.11-minimal_3.11.5-3_armhf.deb ...
Unpacking python3.11-minimal (3.11.5-3) ...
Setting up libpython3.11-minimal:armhf (3.11.5-3) ...
Setting up libexpat1:armhf (2.5.0-1) ...
Setting up python3.11-minimal (3.11.5-3) ...
Selecting previously unselected package python3-minimal.
(Reading database ... 12087 files and directories currently installed.)
Preparing to unpack .../python3-minimal_3.11.2-1_armhf.deb ...
Unpacking python3-minimal (3.11.2-1) ...
Selecting previously unselected package media-types.
Preparing to unpack .../media-types_10.1.0_all.deb ...
Unpacking media-types (10.1.0) ...
Selecting previously unselected package libpython3.11-stdlib:armhf.
Preparing to unpack .../libpython3.11-stdlib_3.11.5-3_armhf.deb ...
Unpacking libpython3.11-stdlib:armhf (3.11.5-3) ...
Selecting previously unselected package python3.11.
Preparing to unpack .../python3.11_3.11.5-3_armhf.deb ...
Unpacking python3.11 (3.11.5-3) ...
Selecting previously unselected package libpython3-stdlib:armhf.
Preparing to unpack .../libpython3-stdlib_3.11.2-1_armhf.deb ...
Unpacking libpython3-stdlib:armhf (3.11.2-1) ...
Setting up python3-minimal (3.11.2-1) ...
Selecting previously unselected package python3.
(Reading database ... 12495 files and directories currently installed.)
Preparing to unpack .../python3_3.11.2-1_armhf.deb ...
Unpacking python3 (3.11.2-1) ...
Preparing to unpack .../libpcre2-8-0_10.42-4_armhf.deb ...
Unpacking libpcre2-8-0:armhf (10.42-4) over (10.42-1) ...
Setting up libpcre2-8-0:armhf (10.42-4) ...
Selecting previously unselected package libuchardet0:armhf.
(Reading database ... 12516 files and directories currently installed.)
Preparing to unpack .../00-libuchardet0_0.0.7-1_armhf.deb ...
Unpacking libuchardet0:armhf (0.0.7-1) ...
Selecting previously unselected package groff-base.
Preparing to unpack .../01-groff-base_1.22.4-10_armhf.deb ...
Unpacking groff-base (1.22.4-10) ...
Selecting previously unselected package bsdextrautils.
Preparing to unpack .../02-bsdextrautils_2.38.1-5_armhf.deb ...
Unpacking bsdextrautils (2.38.1-5) ...
Selecting previously unselected package libpipeline1:armhf.
Preparing to unpack .../03-libpipeline1_1.5.7-1_armhf.deb ...
Unpacking libpipeline1:armhf (1.5.7-1) ...
Selecting previously unselected package man-db.
Preparing to unpack .../04-man-db_2.11.2-2_armhf.deb ...
Unpacking man-db (2.11.2-2) ...
Selecting previously unselected package libmagic-mgc.
Preparing to unpack .../05-libmagic-mgc_1%3a5.44-3_armhf.deb ...
Unpacking libmagic-mgc (1:5.44-3) ...
Selecting previously unselected package libmagic1:armhf.
Preparing to unpack .../06-libmagic1_1%3a5.44-3_armhf.deb ...
Unpacking libmagic1:armhf (1:5.44-3) ...
Selecting previously unselected package file.
Preparing to unpack .../07-file_1%3a5.44-3_armhf.deb ...
Unpacking file (1:5.44-3) ...
Selecting previously unselected package gettext-base.
Preparing to unpack .../08-gettext-base_0.21-12_armhf.deb ...
Unpacking gettext-base (0.21-12) ...
Selecting previously unselected package autotools-dev.
Preparing to unpack .../09-autotools-dev_20220109.1_all.deb ...
Unpacking autotools-dev (20220109.1) ...
Selecting previously unselected package m4.
Preparing to unpack .../10-m4_1.4.19-3_armhf.deb ...
Unpacking m4 (1.4.19-3) ...
Selecting previously unselected package autoconf.
Preparing to unpack .../11-autoconf_2.71-3_all.deb ...
Unpacking autoconf (2.71-3) ...
Selecting previously unselected package automake.
Preparing to unpack .../12-automake_1%3a1.16.5-1.3_all.deb ...
Unpacking automake (1:1.16.5-1.3) ...
Selecting previously unselected package autopoint.
Preparing to unpack .../13-autopoint_0.21-13_all.deb ...
Unpacking autopoint (0.21-13) ...
Selecting previously unselected package libdebhelper-perl.
Preparing to unpack .../14-libdebhelper-perl_13.11.6_all.deb ...
Unpacking libdebhelper-perl (13.11.6) ...
Selecting previously unselected package libtool.
Preparing to unpack .../15-libtool_2.4.7-7_all.deb ...
Unpacking libtool (2.4.7-7) ...
Selecting previously unselected package dh-autoreconf.
Preparing to unpack .../16-dh-autoreconf_20_all.deb ...
Unpacking dh-autoreconf (20) ...
Selecting previously unselected package libarchive-zip-perl.
Preparing to unpack .../17-libarchive-zip-perl_1.68-1_all.deb ...
Unpacking libarchive-zip-perl (1.68-1) ...
Selecting previously unselected package libsub-override-perl.
Preparing to unpack .../18-libsub-override-perl_0.09-4_all.deb ...
Unpacking libsub-override-perl (0.09-4) ...
Selecting previously unselected package libfile-stripnondeterminism-perl.
Preparing to unpack .../19-libfile-stripnondeterminism-perl_1.13.1-1_all.deb ...
Unpacking libfile-stripnondeterminism-perl (1.13.1-1) ...
Selecting previously unselected package dh-strip-nondeterminism.
Preparing to unpack .../20-dh-strip-nondeterminism_1.13.1-1_all.deb ...
Unpacking dh-strip-nondeterminism (1.13.1-1) ...
Selecting previously unselected package libelf1:armhf.
Preparing to unpack .../21-libelf1_0.188-2.1+rpi1_armhf.deb ...
Unpacking libelf1:armhf (0.188-2.1+rpi1) ...
Selecting previously unselected package dwz.
Preparing to unpack .../22-dwz_0.15-1_armhf.deb ...
Unpacking dwz (0.15-1) ...
Selecting previously unselected package libicu72:armhf.
Preparing to unpack .../23-libicu72_72.1-3_armhf.deb ...
Unpacking libicu72:armhf (72.1-3) ...
Selecting previously unselected package libxml2:armhf.
Preparing to unpack .../24-libxml2_2.9.14+dfsg-1.3_armhf.deb ...
Unpacking libxml2:armhf (2.9.14+dfsg-1.3) ...
Selecting previously unselected package gettext.
Preparing to unpack .../25-gettext_0.21-12_armhf.deb ...
Unpacking gettext (0.21-12) ...
Selecting previously unselected package intltool-debian.
Preparing to unpack .../26-intltool-debian_0.35.0+20060710.6_all.deb ...
Unpacking intltool-debian (0.35.0+20060710.6) ...
Selecting previously unselected package po-debconf.
Preparing to unpack .../27-po-debconf_1.0.21+nmu1_all.deb ...
Unpacking po-debconf (1.0.21+nmu1) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../28-debhelper_13.11.6_all.deb ...
Unpacking debhelper (13.11.6) ...
Selecting previously unselected package libapr1:armhf.
Preparing to unpack .../29-libapr1_1.7.2-3_armhf.deb ...
Unpacking libapr1:armhf (1.7.2-3) ...
Selecting previously unselected package uuid-dev:armhf.
Preparing to unpack .../30-uuid-dev_2.38.1-5_armhf.deb ...
Unpacking uuid-dev:armhf (2.38.1-5) ...
Selecting previously unselected package libsctp1:armhf.
Preparing to unpack .../31-libsctp1_1.0.19+dfsg-2_armhf.deb ...
Unpacking libsctp1:armhf (1.0.19+dfsg-2) ...
Selecting previously unselected package libsctp-dev:armhf.
Preparing to unpack .../32-libsctp-dev_1.0.19+dfsg-2_armhf.deb ...
Unpacking libsctp-dev:armhf (1.0.19+dfsg-2) ...
Selecting previously unselected package libapr1-dev.
Preparing to unpack .../33-libapr1-dev_1.7.2-3_armhf.deb ...
Unpacking libapr1-dev (1.7.2-3) ...
Selecting previously unselected package libaprutil1:armhf.
Preparing to unpack .../34-libaprutil1_1.6.3-1_armhf.deb ...
Unpacking libaprutil1:armhf (1.6.3-1) ...
Selecting previously unselected package libldap-dev:armhf.
Preparing to unpack .../35-libldap-dev_2.5.13+dfsg-5+rpi1_armhf.deb ...
Unpacking libldap-dev:armhf (2.5.13+dfsg-5+rpi1) ...
Selecting previously unselected package libldap2-dev.
Preparing to unpack .../36-libldap2-dev_2.5.13+dfsg-5+rpi1_all.deb ...
Unpacking libldap2-dev (2.5.13+dfsg-5+rpi1) ...
Selecting previously unselected package libexpat1-dev:armhf.
Preparing to unpack .../37-libexpat1-dev_2.5.0-1_armhf.deb ...
Unpacking libexpat1-dev:armhf (2.5.0-1) ...
Selecting previously unselected package libaprutil1-dev.
Preparing to unpack .../38-libaprutil1-dev_1.6.3-1_armhf.deb ...
Unpacking libaprutil1-dev (1.6.3-1) ...
Selecting previously unselected package libpcre2-16-0:armhf.
Preparing to unpack .../39-libpcre2-16-0_10.42-4_armhf.deb ...
Unpacking libpcre2-16-0:armhf (10.42-4) ...
Selecting previously unselected package libpcre2-32-0:armhf.
Preparing to unpack .../40-libpcre2-32-0_10.42-4_armhf.deb ...
Unpacking libpcre2-32-0:armhf (10.42-4) ...
Selecting previously unselected package libpcre2-posix3:armhf.
Preparing to unpack .../41-libpcre2-posix3_10.42-4_armhf.deb ...
Unpacking libpcre2-posix3:armhf (10.42-4) ...
Selecting previously unselected package libpcre2-dev:armhf.
Preparing to unpack .../42-libpcre2-dev_10.42-4_armhf.deb ...
Unpacking libpcre2-dev:armhf (10.42-4) ...
Selecting previously unselected package openssl.
Preparing to unpack .../43-openssl_3.0.9-1_armhf.deb ...
Unpacking openssl (3.0.9-1) ...
Selecting previously unselected package apache2-dev.
Preparing to unpack .../44-apache2-dev_2.4.57-3_armhf.deb ...
Unpacking apache2-dev (2.4.57-3) ...
Selecting previously unselected package libbsd0:armhf.
Preparing to unpack .../45-libbsd0_0.11.7-4_armhf.deb ...
Unpacking libbsd0:armhf (0.11.7-4) ...
Selecting previously unselected package cvs.
Preparing to unpack .../46-cvs_2%3a1.12.13+real-28+deb12u1_armhf.deb ...
Unpacking cvs (2:1.12.13+real-28+deb12u1) ...
Selecting previously unselected package cvsps.
Preparing to unpack .../47-cvsps_2.1-8_armhf.deb ...
Unpacking cvsps (2.1-8) ...
Selecting previously unselected package dh-exec.
Preparing to unpack .../48-dh-exec_0.27+b1_armhf.deb ...
Unpacking dh-exec (0.27+b1) ...
Selecting previously unselected package libbrotli1:armhf.
Preparing to unpack .../49-libbrotli1_1.0.9-2+b3_armhf.deb ...
Unpacking libbrotli1:armhf (1.0.9-2+b3) ...
Selecting previously unselected package libhtml-tagset-perl.
Preparing to unpack .../50-libhtml-tagset-perl_3.20-6_all.deb ...
Unpacking libhtml-tagset-perl (3.20-6) ...
Selecting previously unselected package liburi-perl.
Preparing to unpack .../51-liburi-perl_5.21-1_all.deb ...
Unpacking liburi-perl (5.21-1) ...
Selecting previously unselected package libhtml-parser-perl:armhf.
Preparing to unpack .../52-libhtml-parser-perl_3.81-1_armhf.deb ...
Unpacking libhtml-parser-perl:armhf (3.81-1) ...
Selecting previously unselected package libcgi-pm-perl.
Preparing to unpack .../53-libcgi-pm-perl_4.57-1_all.deb ...
Unpacking libcgi-pm-perl (4.57-1) ...
Selecting previously unselected package libnghttp2-14:armhf.
Preparing to unpack .../54-libnghttp2-14_1.52.0-1_armhf.deb ...
Unpacking libnghttp2-14:armhf (1.52.0-1) ...
Selecting previously unselected package libpsl5:armhf.
Preparing to unpack .../55-libpsl5_0.21.2-1_armhf.deb ...
Unpacking libpsl5:armhf (0.21.2-1) ...
Selecting previously unselected package librtmp1:armhf.
Preparing to unpack .../56-librtmp1_2.4+20151223.gitfa8646d.1-2+b2_armhf.deb ...
Unpacking librtmp1:armhf (2.4+20151223.gitfa8646d.1-2+b2) ...
Selecting previously unselected package libssh2-1:armhf.
Preparing to unpack .../57-libssh2-1_1.11.0-2_armhf.deb ...
Unpacking libssh2-1:armhf (1.11.0-2) ...
Selecting previously unselected package libcurl3-gnutls:armhf.
Preparing to unpack .../58-libcurl3-gnutls_7.88.1-10+rpi1_armhf.deb ...
Unpacking libcurl3-gnutls:armhf (7.88.1-10+rpi1) ...
Selecting previously unselected package libcurl4-gnutls-dev:armhf.
Preparing to unpack .../59-libcurl4-gnutls-dev_7.88.1-10+rpi1_armhf.deb ...
Unpacking libcurl4-gnutls-dev:armhf (7.88.1-10+rpi1) ...
Selecting previously unselected package libdbi-perl:armhf.
Preparing to unpack .../60-libdbi-perl_1.643-4_armhf.deb ...
Unpacking libdbi-perl:armhf (1.643-4) ...
Selecting previously unselected package libdbd-sqlite3-perl:armhf.
Preparing to unpack .../61-libdbd-sqlite3-perl_1.72-1_armhf.deb ...
Unpacking libdbd-sqlite3-perl:armhf (1.72-1) ...
Selecting previously unselected package liberror-perl.
Preparing to unpack .../62-liberror-perl_0.17029-2_all.deb ...
Unpacking liberror-perl (0.17029-2) ...
Selecting previously unselected package libtimedate-perl.
Preparing to unpack .../63-libtimedate-perl_2.3300-2_all.deb ...
Unpacking libtimedate-perl (2.3300-2) ...
Selecting previously unselected package libhttp-date-perl.
Preparing to unpack .../64-libhttp-date-perl_6.05-2_all.deb ...
Unpacking libhttp-date-perl (6.05-2) ...
Selecting previously unselected package libio-pty-perl.
Preparing to unpack .../65-libio-pty-perl_1%3a1.17-1_armhf.deb ...
Unpacking libio-pty-perl (1:1.17-1) ...
Selecting previously unselected package perl-openssl-defaults:armhf.
Preparing to unpack .../66-perl-openssl-defaults_7+b1_armhf.deb ...
Unpacking perl-openssl-defaults:armhf (7+b1) ...
Selecting previously unselected package libnet-ssleay-perl:armhf.
Preparing to unpack .../67-libnet-ssleay-perl_1.92-2+b2_armhf.deb ...
Unpacking libnet-ssleay-perl:armhf (1.92-2+b2) ...
Selecting previously unselected package libio-socket-ssl-perl.
Preparing to unpack .../68-libio-socket-ssl-perl_2.083-1_all.deb ...
Unpacking libio-socket-ssl-perl (2.083-1) ...
Selecting previously unselected package libnet-smtp-ssl-perl.
Preparing to unpack .../69-libnet-smtp-ssl-perl_1.04-2_all.deb ...
Unpacking libnet-smtp-ssl-perl (1.04-2) ...
Selecting previously unselected package libmailtools-perl.
Preparing to unpack .../70-libmailtools-perl_2.21-2_all.deb ...
Unpacking libmailtools-perl (2.21-2) ...
Selecting previously unselected package libserf-1-1:armhf.
Preparing to unpack .../71-libserf-1-1_1.3.10-1_armhf.deb ...
Unpacking libserf-1-1:armhf (1.3.10-1) ...
Selecting previously unselected package libutf8proc2:armhf.
Preparing to unpack .../72-libutf8proc2_2.8.0-1+rpi1_armhf.deb ...
Unpacking libutf8proc2:armhf (2.8.0-1+rpi1) ...
Selecting previously unselected package libsvn1:armhf.
Preparing to unpack .../73-libsvn1_1.14.2-4+b1_armhf.deb ...
Unpacking libsvn1:armhf (1.14.2-4+b1) ...
Selecting previously unselected package libsvn-perl:armhf.
Preparing to unpack .../74-libsvn-perl_1.14.2-4+b1_armhf.deb ...
Unpacking libsvn-perl:armhf (1.14.2-4+b1) ...
Selecting previously unselected package libtcl8.6:armhf.
Preparing to unpack .../75-libtcl8.6_8.6.13+dfsg-2_armhf.deb ...
Unpacking libtcl8.6:armhf (8.6.13+dfsg-2) ...
Selecting previously unselected package libyaml-perl.
Preparing to unpack .../76-libyaml-perl_1.30-2_all.deb ...
Unpacking libyaml-perl (1.30-2) ...
Selecting previously unselected package subversion.
Preparing to unpack .../77-subversion_1.14.2-4+b1_armhf.deb ...
Unpacking subversion (1.14.2-4+b1) ...
Selecting previously unselected package tcl8.6.
Preparing to unpack .../78-tcl8.6_8.6.13+dfsg-2_armhf.deb ...
Unpacking tcl8.6 (8.6.13+dfsg-2) ...
Selecting previously unselected package tcl.
Preparing to unpack .../79-tcl_8.6.13_armhf.deb ...
Unpacking tcl (8.6.13) ...
Selecting previously unselected package unzip.
Preparing to unpack .../80-unzip_6.0-28_armhf.deb ...
Unpacking unzip (6.0-28) ...
Selecting previously unselected package zlib1g-dev:armhf.
Preparing to unpack .../81-zlib1g-dev_1%3a1.2.13.dfsg-3_armhf.deb ...
Unpacking zlib1g-dev:armhf (1:1.2.13.dfsg-3) ...
Selecting previously unselected package sbuild-build-depends-git-dummy.
Preparing to unpack .../82-sbuild-build-depends-git-dummy_0.invalid.0_armhf.deb ...
Unpacking sbuild-build-depends-git-dummy (0.invalid.0) ...
Setting up media-types (10.1.0) ...
Setting up libpipeline1:armhf (1.5.7-1) ...
Setting up libpsl5:armhf (0.21.2-1) ...
Setting up libicu72:armhf (72.1-3) ...
Setting up bsdextrautils (2.38.1-5) ...
Setting up libio-pty-perl (1:1.17-1) ...
Setting up libmagic-mgc (1:5.44-3) ...
Setting up libarchive-zip-perl (1.68-1) ...
Setting up libhtml-tagset-perl (3.20-6) ...
Setting up unzip (6.0-28) ...
Setting up libpython3.11-stdlib:armhf (3.11.5-3) ...
Setting up libutf8proc2:armhf (2.8.0-1+rpi1) ...
Setting up libdebhelper-perl (13.11.6) ...
Setting up libbrotli1:armhf (1.0.9-2+b3) ...
Setting up libnghttp2-14:armhf (1.52.0-1) ...
Setting up libmagic1:armhf (1:5.44-3) ...
Setting up libapr1:armhf (1.7.2-3) ...
Setting up perl-openssl-defaults:armhf (7+b1) ...
Setting up gettext-base (0.21-12) ...
Setting up m4 (1.4.19-3) ...
Setting up file (1:5.44-3) ...
Setting up libyaml-perl (1.30-2) ...
Setting up libpcre2-16-0:armhf (10.42-4) ...
Setting up liberror-perl (0.17029-2) ...
Setting up autotools-dev (20220109.1) ...
Setting up libpcre2-32-0:armhf (10.42-4) ...
Setting up libexpat1-dev:armhf (2.5.0-1) ...
Setting up librtmp1:armhf (2.4+20151223.gitfa8646d.1-2+b2) ...
Setting up libldap-dev:armhf (2.5.13+dfsg-5+rpi1) ...
Setting up uuid-dev:armhf (2.38.1-5) ...
Setting up libtcl8.6:armhf (8.6.13+dfsg-2) ...
Setting up autopoint (0.21-13) ...
Setting up autoconf (2.71-3) ...
Setting up libtimedate-perl (2.3300-2) ...
Setting up zlib1g-dev:armhf (1:1.2.13.dfsg-3) ...
Setting up libpcre2-posix3:armhf (10.42-4) ...
Setting up libsctp1:armhf (1.0.19+dfsg-2) ...
Setting up libuchardet0:armhf (0.0.7-1) ...
Setting up libsub-override-perl (0.09-4) ...
Setting up libssh2-1:armhf (1.11.0-2) ...
Setting up openssl (3.0.9-1) ...
Setting up libbsd0:armhf (0.11.7-4) ...
Setting up libelf1:armhf (0.188-2.1+rpi1) ...
Setting up libxml2:armhf (2.9.14+dfsg-1.3) ...
Setting up liburi-perl (5.21-1) ...
Setting up libdbi-perl:armhf (1.643-4) ...
Setting up libpython3-stdlib:armhf (3.11.2-1) ...
Setting up libaprutil1:armhf (1.6.3-1) ...
Setting up libnet-ssleay-perl:armhf (1.92-2+b2) ...
Setting up automake (1:1.16.5-1.3) ...
update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode
Setting up libfile-stripnondeterminism-perl (1.13.1-1) ...
Setting up python3.11 (3.11.5-3) ...
Setting up libhttp-date-perl (6.05-2) ...
Setting up tcl8.6 (8.6.13+dfsg-2) ...
Setting up gettext (0.21-12) ...
Setting up libpcre2-dev:armhf (10.42-4) ...
Setting up libtool (2.4.7-7) ...
Setting up cvs (2:1.12.13+real-28+deb12u1) ...
info: Selecting GID from range 100 to 999 ...
info: Adding group `_cvsadmin' (GID 115) ...
Setting up libserf-1-1:armhf (1.3.10-1) ...
Setting up libcurl3-gnutls:armhf (7.88.1-10+rpi1) ...
Setting up python3 (3.11.2-1) ...
Setting up libcurl4-gnutls-dev:armhf (7.88.1-10+rpi1) ...
Setting up intltool-debian (0.35.0+20060710.6) ...
Setting up libldap2-dev (2.5.13+dfsg-5+rpi1) ...
Setting up dh-autoreconf (20) ...
Setting up libsctp-dev:armhf (1.0.19+dfsg-2) ...
Setting up dh-strip-nondeterminism (1.13.1-1) ...
Setting up dwz (0.15-1) ...
Setting up groff-base (1.22.4-10) ...
Setting up libhtml-parser-perl:armhf (3.81-1) ...
Setting up tcl (8.6.13) ...
Setting up libdbd-sqlite3-perl:armhf (1.72-1) ...
Setting up cvsps (2.1-8) ...
Setting up libsvn1:armhf (1.14.2-4+b1) ...
Setting up libio-socket-ssl-perl (2.083-1) ...
Setting up libsvn-perl:armhf (1.14.2-4+b1) ...
Setting up po-debconf (1.0.21+nmu1) ...
Setting up libcgi-pm-perl (4.57-1) ...
Setting up subversion (1.14.2-4+b1) ...
Setting up man-db (2.11.2-2) ...
Not building database; man-db/auto-update is not 'true'.
Setting up libnet-smtp-ssl-perl (1.04-2) ...
Setting up libmailtools-perl (2.21-2) ...
Setting up libapr1-dev (1.7.2-3) ...
Setting up libaprutil1-dev (1.6.3-1) ...
Setting up debhelper (13.11.6) ...
Setting up dh-exec (0.27+b1) ...
Setting up apache2-dev (2.4.57-3) ...
Setting up sbuild-build-depends-git-dummy (0.invalid.0) ...
Processing triggers for libc-bin (2.36-9+rpi1+deb12u1) ...
W: No sandbox user '_apt' on the system, can not drop privileges
+------------------------------------------------------------------------------+
| Build environment |
+------------------------------------------------------------------------------+
Kernel: Linux 4.15.0-187-generic armhf (armv8l)
Toolchain package versions: binutils_2.40-2+rpi2 dpkg-dev_1.21.22+rpi1 g++-12_12.2.0-14+rpi1 gcc-12_12.2.0-14+rpi1 libc6-dev_2.36-9+rpi1+deb12u1 libstdc++-12-dev_12.2.0-14+rpi1 libstdc++6_12.2.0-14+rpi1 linux-libc-dev_6.1.38-1+rpi1
Package versions: adduser_3.137 apache2-dev_2.4.57-3 apt_2.6.1 autoconf_2.71-3 automake_1:1.16.5-1.3 autopoint_0.21-13 autotools-dev_20220109.1 base-files_12.4+rpi1+deb12u1 base-passwd_3.6.1 bash_5.2.15-2 binutils_2.40-2+rpi2 binutils-arm-linux-gnueabihf_2.40-2+rpi2 binutils-common_2.40-2+rpi2 bsdextrautils_2.38.1-5 bsdutils_1:2.38.1-5 build-essential_12.9 bzip2_1.0.8-5+b2 coreutils_9.1-1 cpp_4:12.2.0-3+rpi1 cpp-12_12.2.0-14+rpi1 cvs_2:1.12.13+real-28+deb12u1 cvsps_2.1-8 dash_0.5.12-2 debconf_1.5.82 debhelper_13.11.6 debianutils_5.7-0.4 dh-autoreconf_20 dh-exec_0.27+b1 dh-strip-nondeterminism_1.13.1-1 diffutils_1:3.8-4 dirmngr_2.2.40-1.1 dpkg_1.21.22+rpi1 dpkg-dev_1.21.22+rpi1 dwz_0.15-1 e2fsprogs_1.47.0-2 fakeroot_1.31-1.2 file_1:5.44-3 findutils_4.9.0-4 g++_4:12.2.0-3+rpi1 g++-12_12.2.0-14+rpi1 gcc_4:12.2.0-3+rpi1 gcc-12_12.2.0-14+rpi1 gcc-12-base_12.2.0-14+rpi1 gcc-7-base_7.5.0-6+rpi1+b2 gcc-8-base_8.4.0-7+rpi1 gcc-9-base_9.4.0-2+rpi1 gettext_0.21-12 gettext-base_0.21-12 gnupg_2.2.40-1.1 gnupg-l10n_2.2.40-1.1 gnupg-utils_2.2.40-1.1 gpg_2.2.40-1.1 gpg-agent_2.2.40-1.1 gpg-wks-client_2.2.40-1.1 gpg-wks-server_2.2.40-1.1 gpgconf_2.2.40-1.1 gpgsm_2.2.40-1.1 gpgv_2.2.40-1.1 grep_3.8-5 groff-base_1.22.4-10 gzip_1.12-1 hostname_3.23+nmu1 init-system-helpers_1.65.2 intltool-debian_0.35.0+20060710.6 iputils-ping_3:20221126-1 krb5-locales_1.20.1-3 libacl1_2.3.1-3 libapr1_1.7.2-3 libapr1-dev_1.7.2-3 libaprutil1_1.6.3-1 libaprutil1-dev_1.6.3-1 libapt-pkg6.0_2.6.1 libarchive-zip-perl_1.68-1 libasan8_12.2.0-14+rpi1 libassuan0_2.5.5-5 libatomic1_12.2.0-14+rpi1 libattr1_1:2.5.1-4 libaudit-common_1:3.1.1-1 libaudit1_1:3.0.9-1 libbinutils_2.40-2+rpi2 libblkid1_2.38.1-5 libbrotli1_1.0.9-2+b3 libbsd0_0.11.7-4 libbz2-1.0_1.0.8-5+b2 libc-bin_2.36-9+rpi1+deb12u1 libc-dev-bin_2.36-9+rpi1+deb12u1 libc6_2.36-9+rpi1+deb12u1 libc6-dev_2.36-9+rpi1+deb12u1 libcap-ng0_0.8.3-1+b1 libcap2_1:2.66-4 libcap2-bin_1:2.66-4 libcc1-0_12.2.0-14+rpi1 libcgi-pm-perl_4.57-1 libcom-err2_1.47.0-2 libcrypt-dev_1:4.4.33-2 libcrypt1_1:4.4.33-2 libctf-nobfd0_2.40-2+rpi2 libctf0_2.40-2+rpi2 libcurl3-gnutls_7.88.1-10+rpi1 libcurl4-gnutls-dev_7.88.1-10+rpi1 libdb5.3_5.3.28+dfsg2-1 libdbd-sqlite3-perl_1.72-1 libdbi-perl_1.643-4 libdebconfclient0_0.270 libdebhelper-perl_13.11.6 libdpkg-perl_1.21.22+rpi1 libelf1_0.188-2.1+rpi1 liberror-perl_0.17029-2 libexpat1_2.5.0-1 libexpat1-dev_2.5.0-1 libext2fs2_1.47.0-2 libfakeroot_1.31-1.2 libffi8_3.4.4-1 libfile-find-rule-perl_0.34-3 libfile-stripnondeterminism-perl_1.13.1-1 libgcc-12-dev_12.2.0-14+rpi1 libgcc-s1_12.2.0-14+rpi1 libgcrypt20_1.10.1-3 libgdbm-compat4_1.23-3 libgdbm6_1.23-3 libgmp10_2:6.2.1+dfsg1-1.1 libgnutls30_3.7.9-2 libgomp1_12.2.0-14+rpi1 libgpg-error0_1.46-1 libgssapi-krb5-2_1.20.1-2 libhogweed6_3.8.1-2 libhtml-parser-perl_3.81-1 libhtml-tagset-perl_3.20-6 libhttp-date-perl_6.05-2 libicu72_72.1-3 libidn2-0_2.3.3-1+b2 libio-pty-perl_1:1.17-1 libio-socket-ssl-perl_2.083-1 libisl23_0.25-1 libjansson4_2.14-2 libk5crypto3_1.20.1-2 libkeyutils1_1.6.3-2 libkrb5-3_1.20.1-2 libkrb5support0_1.20.1-2 libksba8_1.6.3-2 libldap-2.5-0_2.5.13+dfsg-5+rpi1 libldap-dev_2.5.13+dfsg-5+rpi1 libldap2-dev_2.5.13+dfsg-5+rpi1 liblz4-1_1.9.4-1+rpi1+b1 liblzma5_5.4.1-0.2 libmagic-mgc_1:5.44-3 libmagic1_1:5.44-3 libmailtools-perl_2.21-2 libmd0_1.0.4-2 libmount1_2.38.1-5 libmpc3_1.3.1-1 libmpfr6_4.2.0-1 libncursesw6_6.4-4 libnet-smtp-ssl-perl_1.04-2 libnet-ssleay-perl_1.92-2+b2 libnettle8_3.8.1-2 libnghttp2-14_1.52.0-1 libnpth0_1.6-3 libnsl-dev_1.3.0-2 libnsl2_1.3.0-2 libnumber-compare-perl_0.03-3 libp11-kit0_0.24.1-2 libpam-cap_1:2.66-4 libpam-modules_1.5.2-6 libpam-modules-bin_1.5.2-6 libpam-runtime_1.5.2-7 libpam0g_1.5.2-6 libpcre2-16-0_10.42-4 libpcre2-32-0_10.42-4 libpcre2-8-0_10.42-4 libpcre2-dev_10.42-4 libpcre2-posix3_10.42-4 libpcre3_2:8.39-15 libperl5.36_5.36.0-7 libpipeline1_1.5.7-1 libpsl5_0.21.2-1 libpython3-stdlib_3.11.2-1 libpython3.11-minimal_3.11.5-3 libpython3.11-stdlib_3.11.5-3 libreadline8_8.2-1.3 librtmp1_2.4+20151223.gitfa8646d.1-2+b2 libsasl2-2_2.1.28+dfsg-10 libsasl2-modules-db_2.1.28+dfsg-10 libsctp-dev_1.0.19+dfsg-2 libsctp1_1.0.19+dfsg-2 libseccomp2_2.5.4-1+rpi1+b1 libselinux1_3.4-1+b2 libsemanage-common_3.5-1 libsemanage2_3.4-1+b2 libsepol1_3.1-1 libsepol2_3.4-2.1 libserf-1-1_1.3.10-1 libsmartcols1_2.38.1-5 libsqlite3-0_3.40.1-2 libss2_1.47.0-2 libssh2-1_1.11.0-2 libssl1.1_1.1.1o-1 libssl3_3.0.9-1 libstdc++-12-dev_12.2.0-14+rpi1 libstdc++6_12.2.0-14+rpi1 libsub-override-perl_0.09-4 libsvn-perl_1.14.2-4+b1 libsvn1_1.14.2-4+b1 libsystemd0_252.12-1~deb12u1+rpi1 libtasn1-6_4.19.0-2 libtcl8.6_8.6.13+dfsg-2 libtext-glob-perl_0.11-3 libtimedate-perl_2.3300-2 libtinfo6_6.4-4 libtirpc-common_1.3.3+ds-1 libtirpc-dev_1.3.3+ds-1 libtirpc3_1.3.3+ds-1 libtool_2.4.7-7 libubsan1_12.2.0-14+rpi1 libuchardet0_0.0.7-1 libudev1_252.12-1~deb12u1+rpi1 libunistring2_1.0-2 liburi-perl_5.21-1 libutf8proc2_2.8.0-1+rpi1 libuuid1_2.38.1-5 libxml2_2.9.14+dfsg-1.3 libxxhash0_0.8.1-1 libyaml-perl_1.30-2 libzstd1_1.5.4+dfsg2-5 linux-libc-dev_6.1.38-1+rpi1 login_1:4.13+dfsg1-1 logsave_1.47.0-2 lsb-base_11.6+rpi1 m4_1.4.19-3 make_4.3-4.1 man-db_2.11.2-2 mawk_1.3.4.20200120-3.1 media-types_10.1.0 mount_2.38.1-5 nano_7.2-1 ncurses-base_6.4+20230625-2 ncurses-bin_6.4-4 netbase_6.4 openssl_3.0.9-1 passwd_1:4.13+dfsg1-1 patch_2.7.6-7 perl_5.36.0-7 perl-base_5.36.0-7 perl-modules-5.36_5.36.0-7 perl-openssl-defaults_7+b1 pinentry-curses_1.2.1-1 po-debconf_1.0.21+nmu1 python3_3.11.2-1 python3-minimal_3.11.2-1 python3.11_3.11.5-3 python3.11-minimal_3.11.5-3 raspbian-archive-keyring_20120528.2 readline-common_8.2-1.3 rpcsvc-proto_1.4.3-1 sbuild-build-depends-core-dummy_0.invalid.0 sbuild-build-depends-git-dummy_0.invalid.0 sed_4.9-1 sensible-utils_0.0.20 sgml-base_1.31 subversion_1.14.2-4+b1 sysvinit-utils_3.06-4 tar_1.34+dfsg-1.2 tcl_8.6.13 tcl8.6_8.6.13+dfsg-2 tzdata_2023c-10 unzip_6.0-28 usrmerge_37 util-linux_2.38.1-5 util-linux-extra_2.38.1-5 uuid-dev_2.38.1-5 xz-utils_5.4.1-0.2 zlib1g_1:1.2.13.dfsg-3 zlib1g-dev_1:1.2.13.dfsg-3
+------------------------------------------------------------------------------+
| Build |
+------------------------------------------------------------------------------+
Unpack source
-------------
gpgv: Signature made Tue Apr 25 17:25:23 2023 UTC
gpgv: using RSA key 521E58F17E96D712AA0FF102DFC671EEB333FA25
gpgv: issuer "jrnieder@gmail.com"
gpgv: Can't check signature: No public key
dpkg-source: warning: cannot verify inline signature for ./git_2.40.1-1.dsc: no acceptable signature found
dpkg-source: info: extracting git in /<<PKGBUILDDIR>>
dpkg-source: info: unpacking git_2.40.1.orig.tar.xz
dpkg-source: info: unpacking git_2.40.1-1.debian.tar.xz
Check disk space
----------------
Sufficient free space for build
User Environment
----------------
APT_CONFIG=/var/lib/sbuild/apt.conf
DEB_BUILD_OPTIONS=parallel=4
HOME=/sbuild-nonexistent
LC_ALL=POSIX
LOGNAME=buildd
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
SCHROOT_ALIAS_NAME=trixie-staging-armhf-sbuild
SCHROOT_CHROOT_NAME=trixie-staging-armhf-sbuild
SCHROOT_COMMAND=env
SCHROOT_GID=112
SCHROOT_GROUP=buildd
SCHROOT_SESSION_ID=trixie-staging-armhf-sbuild-3d4a540f-4386-40eb-99bb-7b7120a0f495
SCHROOT_UID=107
SCHROOT_USER=buildd
SHELL=/bin/sh
USER=buildd
dpkg-buildpackage
-----------------
dpkg-buildpackage: info: source package git
dpkg-buildpackage: info: source version 1:2.40.1-1
dpkg-buildpackage: info: source distribution unstable
dpkg-source --before-build .
dpkg-buildpackage: info: host architecture armhf
fakeroot debian/rules clean
dh clean --with apache2 --without autoreconf
debian/rules override_dh_auto_clean
/usr/bin/make -C contrib/mw-to-git clean NO_OPENSSL=1 prefix=/usr gitexecdir=/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -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 ../.. SCRIPT_PERL="contrib/mw-to-git//git-remote-mediawiki.perl contrib/mw-to-git//git-mw.perl" \
clean-perl-script
make[3]: Entering directory '/<<PKGBUILDDIR>>'
GIT_VERSION = 2.40.1
make[3]: Leaving directory '/<<PKGBUILDDIR>>'
make[3]: Entering directory '/<<PKGBUILDDIR>>'
rm -f contrib/mw-to-git//git-remote-mediawiki contrib/mw-to-git//git-mw
make[3]: Leaving directory '/<<PKGBUILDDIR>>'
/usr/bin/make -C contrib/subtree clean NO_OPENSSL=1 prefix=/usr gitexecdir=/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -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-VERSION-FILE
make[3]: 'GIT-VERSION-FILE' is up to date.
make[2]: Entering directory '/<<PKGBUILDDIR>>/contrib/subtree'
rm -f git-subtree
rm -f *.xml *.html *.1
make[2]: Leaving directory '/<<PKGBUILDDIR>>/contrib/subtree'
/usr/bin/make clean NO_OPENSSL=1 prefix=/usr gitexecdir=/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -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 '/<<PKGBUILDDIR>>'
rm -f gitweb/gitweb.cgi gitweb/static/gitweb.js gitweb/static/gitweb.min.js gitweb/static/gitweb.min.css gitweb/GITWEB-BUILD-OPTIONS
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f GIT-SPATCH-DEFINES
rm -f -r .build/contrib/coccinelle
rm -f contrib/coccinelle/*.cocci.patch
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f /<<PKGBUILDDIR>>/./*.gcda /<<PKGBUILDDIR>>/builtin/*.gcda /<<PKGBUILDDIR>>/compat/*.gcda /<<PKGBUILDDIR>>/compat/linux/*.gcda /<<PKGBUILDDIR>>/compat/simple-ipc/*.gcda /<<PKGBUILDDIR>>/ewah/*.gcda /<<PKGBUILDDIR>>/negotiator/*.gcda /<<PKGBUILDDIR>>/oss-fuzz/*.gcda /<<PKGBUILDDIR>>/refs/*.gcda /<<PKGBUILDDIR>>/reftable/*.gcda /<<PKGBUILDDIR>>/sha1dc/*.gcda /<<PKGBUILDDIR>>/sha256/block/*.gcda /<<PKGBUILDDIR>>/t/helper/*.gcda /<<PKGBUILDDIR>>/trace2/*.gcda /<<PKGBUILDDIR>>/xdiff/*.gcda
rm -f /<<PKGBUILDDIR>>/./*.gcno /<<PKGBUILDDIR>>/builtin/*.gcno /<<PKGBUILDDIR>>/compat/*.gcno /<<PKGBUILDDIR>>/compat/linux/*.gcno /<<PKGBUILDDIR>>/compat/simple-ipc/*.gcno /<<PKGBUILDDIR>>/ewah/*.gcno /<<PKGBUILDDIR>>/negotiator/*.gcno /<<PKGBUILDDIR>>/oss-fuzz/*.gcno /<<PKGBUILDDIR>>/refs/*.gcno /<<PKGBUILDDIR>>/reftable/*.gcno /<<PKGBUILDDIR>>/sha1dc/*.gcno /<<PKGBUILDDIR>>/sha256/block/*.gcno /<<PKGBUILDDIR>>/t/helper/*.gcno /<<PKGBUILDDIR>>/trace2/*.gcno /<<PKGBUILDDIR>>/xdiff/*.gcno
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f ./*.gcov builtin/*.gcov compat/*.gcov compat/linux/*.gcov compat/simple-ipc/*.gcov ewah/*.gcov negotiator/*.gcov oss-fuzz/*.gcov refs/*.gcov reftable/*.gcov sha1dc/*.gcov sha256/block/*.gcov t/helper/*.gcov trace2/*.gcov xdiff/*.gcov
rm -f ./*.gcda builtin/*.gcda compat/*.gcda compat/linux/*.gcda compat/simple-ipc/*.gcda ewah/*.gcda negotiator/*.gcda oss-fuzz/*.gcda refs/*.gcda reftable/*.gcda sha1dc/*.gcda sha256/block/*.gcda t/helper/*.gcda trace2/*.gcda xdiff/*.gcda
rm -f coverage-untested-functions
rm -f -r cover_db/
rm -f -r cover_db_html/
rm -f coverage-test.made
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f ./*.gcno builtin/*.gcno compat/*.gcno compat/linux/*.gcno compat/simple-ipc/*.gcno ewah/*.gcno negotiator/*.gcno oss-fuzz/*.gcno refs/*.gcno reftable/*.gcno sha1dc/*.gcno sha256/block/*.gcno t/helper/*.gcno trace2/*.gcno xdiff/*.gcno
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f -r .build
rm -f po/git.pot po/git-core.pot
rm -f git.res
rm -f 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-uri.o bundle.o cache-tree.o cbtree.o chdir-notify.o checkout.o chunk-format.o color.o column.o combine-diff.o commit-graph.o commit-reach.o commit.o compat/nonblock.o compat/obstack.o compat/terminal.o compat/zlib-uncompress2.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 diagnose.o diff-delta.o diff-merges.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 diffcore-rotate.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 fsmonitor-ipc.o fsmonitor-settings.o gettext.o gpg-interface.o graph.o grep.o hash-lookup.o hashmap.o help.o hex.o hook.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 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-file.o object-name.o object.o oid-array.o oidmap.o oidset.o oidtree.o pack-bitmap-write.o pack-bitmap.o pack-check.o pack-mtimes.o pack-objects.o pack-revindex.o pack-write.o packfile.o pager.o parallel-checkout.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 protocol-caps.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 reflog.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 shallow.o sideband.o sigchain.o sparse-index.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_ctr.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 trace2/tr2_tmr.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 unix-stream-server.o compat/simple-ipc/ipc-shared.o compat/simple-ipc/ipc-unix-socket.o sha1dc_git.o sha1dc/sha1.o sha1dc/ubc_check.o sha256/block/sha256.o compat/linux/procinfo.o compat/fopen.o compat/strlcpy.o compat/qsort_s.o builtin/add.o builtin/am.o builtin/annotate.o builtin/apply.o builtin/archive.o builtin/bisect.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--worker.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/diagnose.o builtin/diff-files.o builtin/diff-index.o builtin/diff-tree.o builtin/diff.o builtin/difftool.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/fsmonitor--daemon.o builtin/gc.o builtin/get-tar-commit-id.o builtin/grep.o builtin/hash-object.o builtin/help.o builtin/hook.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 git.o scalar.o daemon.o http-backend.o imap-send.o sh-i18n--envsubst.o shell.o http-fetch.o http-push.o t/helper/test-fake-ssh.o t/helper/test-tool.o t/helper/test-advise.o t/helper/test-bitmap.o t/helper/test-bloom.o t/helper/test-bundle-uri.o t/helper/test-cache-tree.o t/helper/test-chmtime.o t/helper/test-config.o t/helper/test-crontab.o t/helper/test-csprng.o t/helper/test-ctype.o t/helper/test-date.o t/helper/test-delta.o t/helper/test-dir-iterator.o t/helper/test-drop-caches.o t/helper/test-dump-cache-tree.o t/helper/test-dump-fsmonitor.o t/helper/test-dump-split-index.o t/helper/test-dump-untracked-cache.o t/helper/test-env-helper.o t/helper/test-example-decorate.o t/helper/test-fast-rebase.o t/helper/test-fsmonitor-client.o t/helper/test-genrandom.o t/helper/test-genzeros.o t/helper/test-getcwd.o t/helper/test-hash-speed.o t/helper/test-hash.o t/helper/test-hashmap.o t/helper/test-hexdump.o t/helper/test-index-version.o t/helper/test-json-writer.o t/helper/test-lazy-init-name-hash.o t/helper/test-match-trees.o t/helper/test-mergesort.o t/helper/test-mktemp.o t/helper/test-oid-array.o t/helper/test-oidmap.o t/helper/test-oidtree.o t/helper/test-online-cpus.o t/helper/test-pack-mtimes.o t/helper/test-parse-options.o t/helper/test-parse-pathspec-file.o t/helper/test-partial-clone.o t/helper/test-path-utils.o t/helper/test-pcre2-config.o t/helper/test-pkt-line.o t/helper/test-prio-queue.o t/helper/test-proc-receive.o t/helper/test-progress.o t/helper/test-reach.o t/helper/test-read-cache.o t/helper/test-read-graph.o t/helper/test-read-midx.o t/helper/test-ref-store.o t/helper/test-reftable.o t/helper/test-regex.o t/helper/test-rot13-filter.o t/helper/test-repository.o t/helper/test-revision-walking.o t/helper/test-run-command.o t/helper/test-scrap-cache-tree.o t/helper/test-serve-v2.o t/helper/test-sha1.o t/helper/test-sha256.o t/helper/test-sigchain.o t/helper/test-simple-ipc.o t/helper/test-strcmp-offset.o t/helper/test-string-list.o t/helper/test-submodule-config.o t/helper/test-submodule-nested-repo-config.o t/helper/test-submodule.o t/helper/test-subprocess.o t/helper/test-trace2.o t/helper/test-urlmatch-normalization.o t/helper/test-userdiff.o t/helper/test-wildmatch.o t/helper/test-windows-named-pipe.o t/helper/test-write-cache.o t/helper/test-xml-encode.o xdiff/xdiffi.o xdiff/xemit.o xdiff/xhistogram.o xdiff/xmerge.o xdiff/xpatience.o xdiff/xprepare.o xdiff/xutils.o oss-fuzz/fuzz-commit-graph.o oss-fuzz/fuzz-pack-headers.o oss-fuzz/fuzz-pack-idx.o reftable/basics.o reftable/error.o reftable/block.o reftable/blocksource.o reftable/iter.o reftable/publicbasics.o reftable/merged.o reftable/pq.o reftable/reader.o reftable/record.o reftable/refname.o reftable/generic.o reftable/stack.o reftable/tree.o reftable/writer.o reftable/basics_test.o reftable/block_test.o reftable/dump.o reftable/merged_test.o reftable/pq_test.o reftable/record_test.o reftable/readwrite_test.o reftable/refname_test.o reftable/stack_test.o reftable/test_framework.o reftable/tree_test.o http.o http-walker.o remote-curl.o
rm -f libgit.a xdiff/lib.a reftable/libreftable.a reftable/libreftable_test.a
rm -f git-daemon git-http-backend git-imap-send git-sh-i18n--envsubst git-shell git-http-fetch git-http-push git-remote-http git-remote-https git-remote-ftp git-remote-ftps git-difftool--helper git-filter-branch git-merge-octopus git-merge-one-file git-merge-resolve git-mergetool git-quiltimport git-request-pull git-submodule git-web--browse git-archimport git-cvsexportcommit git-cvsimport git-cvsserver git-send-email git-svn git-p4 git-instaweb git-mergetool--lib git-sh-i18n git-sh-setup git-add git-am git-annotate git-apply git-archive git-bisect git-blame git-branch git-bugreport git-bundle git-cat-file git-check-attr git-check-ignore git-check-mailmap git-check-ref-format git-checkout--worker git-checkout-index git-checkout git-clean git-clone git-column git-commit-graph git-commit-tree git-commit git-config git-count-objects git-credential-cache--daemon git-credential-cache git-credential-store git-credential git-describe git-diagnose git-diff-files git-diff-index git-diff-tree git-diff git-difftool git-fast-export git-fast-import git-fetch-pack git-fetch git-fmt-merge-msg git-for-each-ref git-for-each-repo git-fsck git-fsmonitor--daemon git-gc git-get-tar-commit-id git-grep git-hash-object git-help git-hook git-index-pack git-init-db git-interpret-trailers git-log git-ls-files git-ls-remote git-ls-tree git-mailinfo git-mailsplit git-merge-base git-merge-file git-merge-index git-merge-ours git-merge-recursive git-merge-tree git-merge git-mktag git-mktree git-multi-pack-index git-mv git-name-rev git-notes git-pack-objects git-pack-redundant git-pack-refs git-patch-id git-prune-packed git-prune git-pull git-push git-range-diff git-read-tree git-rebase git-receive-pack git-reflog git-remote-ext git-remote-fd git-remote git-repack git-replace git-rerere git-reset git-rev-list git-rev-parse git-revert git-rm git-send-pack git-shortlog git-show-branch git-show-index git-show-ref git-sparse-checkout git-stash git-stripspace git-submodule--helper git-symbolic-ref git-tag git-unpack-file git-unpack-objects git-update-index git-update-ref git-update-server-info git-upload-archive git-upload-pack git-var git-verify-commit git-verify-pack git-verify-tag git-worktree git-write-tree git-cherry git-cherry-pick git-format-patch git-fsck-objects git-init git-maintenance git-merge-subtree git-restore git-show git-stage git-status git-switch git-version git-whatchanged git scalar
rm -f t/helper/test-fake-ssh t/helper/test-tool
rm -f oss-fuzz/fuzz-commit-graph oss-fuzz/fuzz-pack-headers oss-fuzz/fuzz-pack-idx
rm -f abspath.sp add-interactive.sp add-patch.sp advice.sp alias.sp alloc.sp apply.sp archive-tar.sp archive-zip.sp archive.sp attr.sp base85.sp bisect.sp blame.sp blob.sp bloom.sp branch.sp bulk-checkin.sp bundle-uri.sp bundle.sp cache-tree.sp cbtree.sp chdir-notify.sp checkout.sp chunk-format.sp color.sp column.sp combine-diff.sp commit-graph.sp commit-reach.sp commit.sp compat/nonblock.sp compat/obstack.sp compat/terminal.sp compat/zlib-uncompress2.sp config.sp connect.sp connected.sp convert.sp copy.sp credential.sp csum-file.sp ctype.sp date.sp decorate.sp delta-islands.sp diagnose.sp diff-delta.sp diff-merges.sp diff-lib.sp diff-no-index.sp diff.sp diffcore-break.sp diffcore-delta.sp diffcore-order.sp diffcore-pickaxe.sp diffcore-rename.sp diffcore-rotate.sp dir-iterator.sp dir.sp editor.sp entry.sp environment.sp ewah/bitmap.sp ewah/ewah_bitmap.sp ewah/ewah_io.sp ewah/ewah_rlw.sp exec-cmd.sp fetch-negotiator.sp fetch-pack.sp fmt-merge-msg.sp fsck.sp fsmonitor.sp fsmonitor-ipc.sp fsmonitor-settings.sp gettext.sp gpg-interface.sp graph.sp grep.sp hash-lookup.sp hashmap.sp help.sp hex.sp hook.sp ident.sp json-writer.sp kwset.sp levenshtein.sp line-log.sp line-range.sp linear-assignment.sp list-objects-filter-options.sp list-objects-filter.sp list-objects.sp ll-merge.sp lockfile.sp log-tree.sp ls-refs.sp mailinfo.sp mailmap.sp match-trees.sp mem-pool.sp merge-blobs.sp merge-ort.sp merge-ort-wrappers.sp merge-recursive.sp merge.sp midx.sp name-hash.sp negotiator/default.sp negotiator/noop.sp negotiator/skipping.sp notes-cache.sp notes-merge.sp notes-utils.sp notes.sp object-file.sp object-name.sp object.sp oid-array.sp oidmap.sp oidset.sp oidtree.sp pack-bitmap-write.sp pack-bitmap.sp pack-check.sp pack-mtimes.sp pack-objects.sp pack-revindex.sp pack-write.sp packfile.sp pager.sp parallel-checkout.sp parse-options-cb.sp parse-options.sp patch-delta.sp patch-ids.sp path.sp pathspec.sp pkt-line.sp preload-index.sp pretty.sp prio-queue.sp progress.sp promisor-remote.sp prompt.sp protocol.sp protocol-caps.sp prune-packed.sp quote.sp range-diff.sp reachable.sp read-cache.sp rebase-interactive.sp rebase.sp ref-filter.sp reflog-walk.sp reflog.sp refs.sp refs/debug.sp refs/files-backend.sp refs/iterator.sp refs/packed-backend.sp refs/ref-cache.sp refspec.sp remote.sp replace-object.sp repo-settings.sp repository.sp rerere.sp reset.sp resolve-undo.sp revision.sp run-command.sp send-pack.sp sequencer.sp serve.sp server-info.sp setup.sp shallow.sp sideband.sp sigchain.sp sparse-index.sp split-index.sp stable-qsort.sp strbuf.sp streaming.sp string-list.sp strmap.sp strvec.sp sub-process.sp submodule-config.sp submodule.sp symlinks.sp tag.sp tempfile.sp thread-utils.sp tmp-objdir.sp trace.sp trace2.sp trace2/tr2_cfg.sp trace2/tr2_cmd_name.sp trace2/tr2_ctr.sp trace2/tr2_dst.sp trace2/tr2_sid.sp trace2/tr2_sysenv.sp trace2/tr2_tbuf.sp trace2/tr2_tgt_event.sp trace2/tr2_tgt_normal.sp trace2/tr2_tgt_perf.sp trace2/tr2_tls.sp trace2/tr2_tmr.sp trailer.sp transport-helper.sp transport.sp tree-diff.sp tree-walk.sp tree.sp unpack-trees.sp upload-pack.sp url.sp urlmatch.sp usage.sp userdiff.sp utf8.sp varint.sp version.sp versioncmp.sp walker.sp wildmatch.sp worktree.sp wrapper.sp write-or-die.sp ws.sp wt-status.sp xdiff-interface.sp zlib.sp unix-socket.sp unix-stream-server.sp compat/simple-ipc/ipc-shared.sp compat/simple-ipc/ipc-unix-socket.sp sha1dc_git.sp sha1dc/sha1.sp sha1dc/ubc_check.sp sha256/block/sha256.sp compat/linux/procinfo.sp compat/fopen.sp compat/strlcpy.sp compat/qsort_s.sp builtin/add.sp builtin/am.sp builtin/annotate.sp builtin/apply.sp builtin/archive.sp builtin/bisect.sp builtin/blame.sp builtin/branch.sp builtin/bugreport.sp builtin/bundle.sp builtin/cat-file.sp builtin/check-attr.sp builtin/check-ignore.sp builtin/check-mailmap.sp builtin/check-ref-format.sp builtin/checkout--worker.sp builtin/checkout-index.sp builtin/checkout.sp builtin/clean.sp builtin/clone.sp builtin/column.sp builtin/commit-graph.sp builtin/commit-tree.sp builtin/commit.sp builtin/config.sp builtin/count-objects.sp builtin/credential-cache--daemon.sp builtin/credential-cache.sp builtin/credential-store.sp builtin/credential.sp builtin/describe.sp builtin/diagnose.sp builtin/diff-files.sp builtin/diff-index.sp builtin/diff-tree.sp builtin/diff.sp builtin/difftool.sp builtin/fast-export.sp builtin/fast-import.sp builtin/fetch-pack.sp builtin/fetch.sp builtin/fmt-merge-msg.sp builtin/for-each-ref.sp builtin/for-each-repo.sp builtin/fsck.sp builtin/fsmonitor--daemon.sp builtin/gc.sp builtin/get-tar-commit-id.sp builtin/grep.sp builtin/hash-object.sp builtin/help.sp builtin/hook.sp builtin/index-pack.sp builtin/init-db.sp builtin/interpret-trailers.sp builtin/log.sp builtin/ls-files.sp builtin/ls-remote.sp builtin/ls-tree.sp builtin/mailinfo.sp builtin/mailsplit.sp builtin/merge-base.sp builtin/merge-file.sp builtin/merge-index.sp builtin/merge-ours.sp builtin/merge-recursive.sp builtin/merge-tree.sp builtin/merge.sp builtin/mktag.sp builtin/mktree.sp builtin/multi-pack-index.sp builtin/mv.sp builtin/name-rev.sp builtin/notes.sp builtin/pack-objects.sp builtin/pack-redundant.sp builtin/pack-refs.sp builtin/patch-id.sp builtin/prune-packed.sp builtin/prune.sp builtin/pull.sp builtin/push.sp builtin/range-diff.sp builtin/read-tree.sp builtin/rebase.sp builtin/receive-pack.sp builtin/reflog.sp builtin/remote-ext.sp builtin/remote-fd.sp builtin/remote.sp builtin/repack.sp builtin/replace.sp builtin/rerere.sp builtin/reset.sp builtin/rev-list.sp builtin/rev-parse.sp builtin/revert.sp builtin/rm.sp builtin/send-pack.sp builtin/shortlog.sp builtin/show-branch.sp builtin/show-index.sp builtin/show-ref.sp builtin/sparse-checkout.sp builtin/stash.sp builtin/stripspace.sp builtin/submodule--helper.sp builtin/symbolic-ref.sp builtin/tag.sp builtin/unpack-file.sp builtin/unpack-objects.sp builtin/update-index.sp builtin/update-ref.sp builtin/update-server-info.sp builtin/upload-archive.sp builtin/upload-pack.sp builtin/var.sp builtin/verify-commit.sp builtin/verify-pack.sp builtin/verify-tag.sp builtin/worktree.sp builtin/write-tree.sp common-main.sp git.sp scalar.sp daemon.sp http-backend.sp imap-send.sp sh-i18n--envsubst.sp shell.sp http-fetch.sp http-push.sp t/helper/test-fake-ssh.sp t/helper/test-tool.sp t/helper/test-advise.sp t/helper/test-bitmap.sp t/helper/test-bloom.sp t/helper/test-bundle-uri.sp t/helper/test-cache-tree.sp t/helper/test-chmtime.sp t/helper/test-config.sp t/helper/test-crontab.sp t/helper/test-csprng.sp t/helper/test-ctype.sp t/helper/test-date.sp t/helper/test-delta.sp t/helper/test-dir-iterator.sp t/helper/test-drop-caches.sp t/helper/test-dump-cache-tree.sp t/helper/test-dump-fsmonitor.sp t/helper/test-dump-split-index.sp t/helper/test-dump-untracked-cache.sp t/helper/test-env-helper.sp t/helper/test-example-decorate.sp t/helper/test-fast-rebase.sp t/helper/test-fsmonitor-client.sp t/helper/test-genrandom.sp t/helper/test-genzeros.sp t/helper/test-getcwd.sp t/helper/test-hash-speed.sp t/helper/test-hash.sp t/helper/test-hashmap.sp t/helper/test-hexdump.sp t/helper/test-index-version.sp t/helper/test-json-writer.sp t/helper/test-lazy-init-name-hash.sp t/helper/test-match-trees.sp t/helper/test-mergesort.sp t/helper/test-mktemp.sp t/helper/test-oid-array.sp t/helper/test-oidmap.sp t/helper/test-oidtree.sp t/helper/test-online-cpus.sp t/helper/test-pack-mtimes.sp t/helper/test-parse-options.sp t/helper/test-parse-pathspec-file.sp t/helper/test-partial-clone.sp t/helper/test-path-utils.sp t/helper/test-pcre2-config.sp t/helper/test-pkt-line.sp t/helper/test-prio-queue.sp t/helper/test-proc-receive.sp t/helper/test-progress.sp t/helper/test-reach.sp t/helper/test-read-cache.sp t/helper/test-read-graph.sp t/helper/test-read-midx.sp t/helper/test-ref-store.sp t/helper/test-reftable.sp t/helper/test-regex.sp t/helper/test-rot13-filter.sp t/helper/test-repository.sp t/helper/test-revision-walking.sp t/helper/test-run-command.sp t/helper/test-scrap-cache-tree.sp t/helper/test-serve-v2.sp t/helper/test-sha1.sp t/helper/test-sha256.sp t/helper/test-sigchain.sp t/helper/test-simple-ipc.sp t/helper/test-strcmp-offset.sp t/helper/test-string-list.sp t/helper/test-submodule-config.sp t/helper/test-submodule-nested-repo-config.sp t/helper/test-submodule.sp t/helper/test-subprocess.sp t/helper/test-trace2.sp t/helper/test-urlmatch-normalization.sp t/helper/test-userdiff.sp t/helper/test-wildmatch.sp t/helper/test-windows-named-pipe.sp t/helper/test-write-cache.sp t/helper/test-xml-encode.sp xdiff/xdiffi.sp xdiff/xemit.sp xdiff/xhistogram.sp xdiff/xmerge.sp xdiff/xpatience.sp xdiff/xprepare.sp xdiff/xutils.sp oss-fuzz/fuzz-commit-graph.sp oss-fuzz/fuzz-pack-headers.sp oss-fuzz/fuzz-pack-idx.sp reftable/basics.sp reftable/error.sp reftable/block.sp reftable/blocksource.sp reftable/iter.sp reftable/publicbasics.sp reftable/merged.sp reftable/pq.sp reftable/reader.sp reftable/record.sp reftable/refname.sp reftable/generic.sp reftable/stack.sp reftable/tree.sp reftable/writer.sp reftable/basics_test.sp reftable/block_test.sp reftable/dump.sp reftable/merged_test.sp reftable/pq_test.sp reftable/record_test.sp reftable/readwrite_test.sp reftable/refname_test.sp reftable/stack_test.sp reftable/test_framework.sp reftable/tree_test.sp http.sp http-walker.sp remote-curl.sp
rm -f add-interactive.hcc advice.hcc alias.hcc alloc.hcc apply.hcc archive.hcc attr.hcc banned.hcc bisect.hcc blame.hcc blob.hcc block-sha1/sha1.hcc bloom.hcc branch.hcc builtin.hcc bulk-checkin.hcc bundle-uri.hcc bundle.hcc cache-tree.hcc cache.hcc cbtree.hcc chdir-notify.hcc checkout.hcc chunk-format.hcc color.hcc column.hcc commit-graph.hcc commit-reach.hcc commit-slab-decl.hcc commit-slab-impl.hcc commit-slab.hcc commit.hcc config.hcc connect.hcc connected.hcc convert.hcc credential.hcc csum-file.hcc date.hcc decorate.hcc delta-islands.hcc delta.hcc diagnose.hcc diff-merges.hcc diff.hcc diffcore.hcc dir-iterator.hcc dir.hcc entry.hcc environment.hcc ewah/ewok.hcc ewah/ewok_rlw.hcc exec-cmd.hcc fetch-negotiator.hcc fetch-pack.hcc fmt-merge-msg.hcc fsck.hcc fsmonitor--daemon.hcc fsmonitor-ipc.hcc fsmonitor-path-utils.hcc fsmonitor-settings.hcc fsmonitor.hcc gettext.hcc git-compat-util.hcc git-curl-compat.hcc gpg-interface.hcc graph.hcc grep.hcc hash-lookup.hcc hash.hcc hashmap.hcc help.hcc hook.hcc http.hcc iterator.hcc json-writer.hcc khash.hcc kwset.hcc levenshtein.hcc line-log.hcc line-range.hcc linear-assignment.hcc list-objects-filter-options.hcc list-objects-filter.hcc list-objects.hcc list.hcc ll-merge.hcc lockfile.hcc log-tree.hcc ls-refs.hcc mailinfo.hcc mailmap.hcc mem-pool.hcc merge-blobs.hcc merge-ort-wrappers.hcc merge-ort.hcc merge-recursive.hcc mergesort.hcc midx.hcc negotiator/default.hcc negotiator/noop.hcc negotiator/skipping.hcc notes-cache.hcc notes-merge.hcc notes-utils.hcc notes.hcc object-store.hcc object.hcc oid-array.hcc oidmap.hcc oidset.hcc oidtree.hcc pack-bitmap.hcc pack-mtimes.hcc pack-objects.hcc pack-revindex.hcc pack.hcc packfile.hcc parallel-checkout.hcc parse-options.hcc patch-ids.hcc path.hcc pathspec.hcc pkt-line.hcc pretty.hcc prio-queue.hcc progress.hcc promisor-remote.hcc prompt.hcc protocol-caps.hcc protocol.hcc prune-packed.hcc quote.hcc range-diff.hcc reachable.hcc rebase-interactive.hcc rebase.hcc ref-filter.hcc reflog-walk.hcc reflog.hcc refs.hcc refs/packed-backend.hcc refs/ref-cache.hcc refs/refs-internal.hcc refspec.hcc reftable/basics.hcc reftable/block.hcc reftable/blocksource.hcc reftable/constants.hcc reftable/generic.hcc reftable/iter.hcc reftable/merged.hcc reftable/pq.hcc reftable/reader.hcc reftable/record.hcc reftable/refname.hcc reftable/reftable-blocksource.hcc reftable/reftable-error.hcc reftable/reftable-generic.hcc reftable/reftable-iterator.hcc reftable/reftable-malloc.hcc reftable/reftable-merged.hcc reftable/reftable-reader.hcc reftable/reftable-record.hcc reftable/reftable-stack.hcc reftable/reftable-tests.hcc reftable/reftable-writer.hcc reftable/stack.hcc reftable/system.hcc reftable/test_framework.hcc reftable/tree.hcc reftable/writer.hcc remote.hcc replace-object.hcc repository.hcc rerere.hcc reset.hcc resolve-undo.hcc revision.hcc run-command.hcc send-pack.hcc sequencer.hcc serve.hcc sha1dc/sha1.hcc sha1dc/ubc_check.hcc sha1dc_git.hcc sha256/block/sha256.hcc shallow.hcc shortlog.hcc sideband.hcc sigchain.hcc simple-ipc.hcc sparse-index.hcc split-index.hcc strbuf.hcc streaming.hcc string-list.hcc strmap.hcc strvec.hcc sub-process.hcc submodule-config.hcc submodule.hcc t/helper/test-tool-utils.hcc t/helper/test-tool.hcc tag.hcc tar.hcc tempfile.hcc thread-utils.hcc tmp-objdir.hcc trace.hcc trace2.hcc trace2/tr2_cfg.hcc trace2/tr2_cmd_name.hcc trace2/tr2_ctr.hcc trace2/tr2_dst.hcc trace2/tr2_sid.hcc trace2/tr2_sysenv.hcc trace2/tr2_tbuf.hcc trace2/tr2_tgt.hcc trace2/tr2_tls.hcc trace2/tr2_tmr.hcc trailer.hcc transport-internal.hcc transport.hcc tree-walk.hcc tree.hcc unix-socket.hcc unix-stream-server.hcc unpack-trees.hcc upload-pack.hcc url.hcc urlmatch.hcc userdiff.hcc utf8.hcc varint.hcc version.hcc walker.hcc wildmatch.hcc worktree.hcc wt-status.hcc xdiff-interface.hcc
rm -f -r bin-wrappers ./.depend builtin/.depend compat/.depend compat/linux/.depend compat/simple-ipc/.depend ewah/.depend negotiator/.depend oss-fuzz/.depend refs/.depend reftable/.depend sha1dc/.depend sha256/block/.depend t/helper/.depend trace2/.depend xdiff/.depend compile_commands compile_commands.json
rm -f -r po/build/
rm -f *.pyc *.pyo */*.pyc */*.pyo command-list.h config-list.h hook-list.h TAGS tags cscope*
rm -f -r .dist-tmp-dir .doc-tmp-dir
rm -f git-2.40.1.tar.gz
rm -f git-htmldocs-2.40.1.tar.gz git-manpages-2.40.1.tar.gz
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
/usr/bin/make -C Documentation/ clean
make[3]: Entering directory '/<<PKGBUILDDIR>>/Documentation'
rm -f -rf .build/
rm -f *.xml *.xml+ *.html *.html+ *.1 *.5 *.7
rm -f *.texi *.texi+ *.texi++ git.info gitman.info
rm -f *.pdf
rm -f howto-index.txt howto/*.html doc.dep
rm -f technical/*.html technical/api-index.txt
rm -f SubmittingPatches.txt
rm -f cmds-ancillaryinterrogators.txt cmds-ancillarymanipulators.txt cmds-mainporcelain.txt cmds-plumbinginterrogators.txt cmds-plumbingmanipulators.txt cmds-synchingrepositories.txt cmds-synchelpers.txt cmds-guide.txt cmds-developerinterfaces.txt cmds-userinterfaces.txt cmds-purehelpers.txt cmds-foreignscminterface.txt mergetools-diff.txt mergetools-merge.txt *.made
rm -f manpage-base-url.xsl
rm -f GIT-ASCIIDOCFLAGS
make[3]: Leaving directory '/<<PKGBUILDDIR>>/Documentation'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f Documentation/GIT-EXCLUDED-PROGRAMS
rm -f -r perl/build/
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
/usr/bin/make -C templates/ clean
make[3]: Entering directory '/<<PKGBUILDDIR>>/templates'
rm -f -r blt boilerplates.made
make[3]: Leaving directory '/<<PKGBUILDDIR>>/templates'
/usr/bin/make -C t/ clean
make[3]: Entering directory '/<<PKGBUILDDIR>>/t'
rm -f -r 'chainlinttmp'
make[3]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[3]: Entering directory '/<<PKGBUILDDIR>>/t'
rm -f -r 'trash directory'.*
rm -f -r valgrind/bin
make[3]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[3]: Entering directory '/<<PKGBUILDDIR>>/t'
rm -f -r 'test-results'
rm -f .prove
make[3]: Leaving directory '/<<PKGBUILDDIR>>/t'
/usr/bin/make -C gitk-git clean
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitk-git'
rm -f gitk-wish po/*.msg GIT-TCLTK-VARS
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitk-git'
/usr/bin/make -C git-gui clean
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
rm -rf git-gui lib/tclIndex po/*.msg
rm -rf GIT-VERSION-FILE GIT-GUI-VARS
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f GIT-VERSION-FILE GIT-CFLAGS GIT-LDFLAGS GIT-BUILD-OPTIONS
rm -f GIT-USER-AGENT GIT-PREFIX
rm -f GIT-SCRIPT-DEFINES GIT-PERL-DEFINES GIT-PERL-HEADER GIT-PYTHON-VARS
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[1]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-subtree
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
debian/rules override_dh_clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_clean -Xmailinfo.c.orig
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
debian/rules build-arch
dh build-arch --with apache2 --without autoreconf
dh_update_autotools_config -a
debian/rules override_dh_auto_build-arch
make[1]: Entering directory '/<<PKGBUILDDIR>>'
gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/12/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../src/configure -v --with-pkgversion='Raspbian 12.2.0-14+rpi1' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=arm-linux-gnueabihf- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --disable-libquadmath-support --enable-plugin --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-sjlj-exceptions --with-arch=armv6+fp --with-float=hard --disable-werror --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.0 (Raspbian 12.2.0-14+rpi1)
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
/usr/bin/make all NO_OPENSSL=1 prefix=/usr gitexecdir=/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -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 '/<<PKGBUILDDIR>>'
GIT_VERSION = 2.40.1
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
* new build flags
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o oss-fuzz/fuzz-pack-headers.o -c -MF oss-fuzz/.depend/fuzz-pack-headers.o.d -MQ oss-fuzz/fuzz-pack-headers.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' oss-fuzz/fuzz-pack-headers.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o oss-fuzz/fuzz-pack-idx.o -c -MF oss-fuzz/.depend/fuzz-pack-idx.o.d -MQ oss-fuzz/fuzz-pack-idx.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' oss-fuzz/fuzz-pack-idx.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o oss-fuzz/fuzz-commit-graph.o -c -MF oss-fuzz/.depend/fuzz-commit-graph.o.d -MQ oss-fuzz/fuzz-commit-graph.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' oss-fuzz/fuzz-commit-graph.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
* new link flags
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o common-main.o -c -MF ./.depend/common-main.o.d -MQ common-main.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' common-main.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o abspath.o -c -MF ./.depend/abspath.o.d -MQ abspath.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' abspath.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o advice.o -c -MF ./.depend/advice.o.d -MQ advice.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' advice.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o alias.o -c -MF ./.depend/alias.o.d -MQ alias.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' alias.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o daemon.o -c -MF ./.depend/daemon.o.d -MQ daemon.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' daemon.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' add-interactive.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o alloc.o -c -MF ./.depend/alloc.o.d -MQ alloc.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' alloc.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' archive-tar.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' add-patch.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
* new prefix flags
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' archive-zip.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o base85.o -c -MF ./.depend/base85.o.d -MQ base85.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' base85.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o archive.o -c -MF ./.depend/archive.o.d -MQ archive.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' archive.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o blob.o -c -MF ./.depend/blob.o.d -MQ blob.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' blob.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o bisect.o -c -MF ./.depend/bisect.o.d -MQ bisect.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' bisect.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o bloom.o -c -MF ./.depend/bloom.o.d -MQ bloom.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' bloom.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' bulk-checkin.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o branch.o -c -MF ./.depend/branch.o.d -MQ branch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' branch.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o bundle-uri.o -c -MF ./.depend/bundle-uri.o.d -MQ bundle-uri.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' bundle-uri.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o bundle.o -c -MF ./.depend/bundle.o.d -MQ bundle.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' bundle.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o blame.o -c -MF ./.depend/blame.o.d -MQ blame.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' blame.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o cbtree.o -c -MF ./.depend/cbtree.o.d -MQ cbtree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' cbtree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' chdir-notify.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o checkout.o -c -MF ./.depend/checkout.o.d -MQ checkout.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' checkout.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o chunk-format.o -c -MF ./.depend/chunk-format.o.d -MQ chunk-format.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' chunk-format.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' cache-tree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o color.o -c -MF ./.depend/color.o.d -MQ color.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' color.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o apply.o -c -MF ./.depend/apply.o.d -MQ apply.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' apply.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o column.o -c -MF ./.depend/column.o.d -MQ column.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' column.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' commit-reach.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o compat/nonblock.o -c -MF compat/.depend/nonblock.o.d -MQ compat/nonblock.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' compat/nonblock.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' compat/obstack.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' combine-diff.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' compat/terminal.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o compat/zlib-uncompress2.o -c -MF compat/.depend/zlib-uncompress2.o.d -MQ compat/zlib-uncompress2.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' compat/zlib-uncompress2.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o commit.o -c -MF ./.depend/commit.o.d -MQ commit.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' commit.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o connected.o -c -MF ./.depend/connected.o.d -MQ connected.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' connected.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' commit-graph.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o copy.o -c -MF ./.depend/copy.o.d -MQ copy.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' copy.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o connect.o -c -MF ./.depend/connect.o.d -MQ connect.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' connect.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' csum-file.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o ctype.o -c -MF ./.depend/ctype.o.d -MQ ctype.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' ctype.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o credential.o -c -MF ./.depend/credential.o.d -MQ credential.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' credential.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o decorate.o -c -MF ./.depend/decorate.o.d -MQ decorate.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' decorate.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o convert.o -c -MF ./.depend/convert.o.d -MQ convert.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' convert.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o diagnose.o -c -MF ./.depend/diagnose.o.d -MQ diagnose.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' diagnose.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' diff-delta.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o date.o -c -MF ./.depend/date.o.d -MQ date.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' date.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' delta-islands.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o diff-merges.o -c -MF ./.depend/diff-merges.o.d -MQ diff-merges.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' diff-merges.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o config.o -c -MF ./.depend/config.o.d -MQ config.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DETC_GITCONFIG='"/etc/gitconfig"' config.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' diffcore-break.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' diff-no-index.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' diff-lib.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o diffcore-delta.o -c -MF ./.depend/diffcore-delta.o.d -MQ diffcore-delta.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' diffcore-delta.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o diffcore-order.o -c -MF ./.depend/diffcore-order.o.d -MQ diffcore-order.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' diffcore-order.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' diffcore-pickaxe.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o diffcore-rotate.o -c -MF ./.depend/diffcore-rotate.o.d -MQ diffcore-rotate.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' diffcore-rotate.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' dir-iterator.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o editor.o -c -MF ./.depend/editor.o.d -MQ editor.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' editor.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' diffcore-rename.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o entry.o -c -MF ./.depend/entry.o.d -MQ entry.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' entry.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o environment.o -c -MF ./.depend/environment.o.d -MQ environment.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' environment.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' ewah/bitmap.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' ewah/ewah_io.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' ewah/ewah_bitmap.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' ewah/ewah_rlw.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o fetch-negotiator.o -c -MF ./.depend/fetch-negotiator.o.d -MQ fetch-negotiator.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' fetch-negotiator.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o exec-cmd.o -c -MF ./.depend/exec-cmd.o.d -MQ exec-cmd.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' '-DGIT_EXEC_PATH="/usr/lib/git-core"' '-DGIT_LOCALE_PATH="share/locale"' '-DBINDIR="bin"' '-DFALLBACK_RUNTIME_PREFIX="/usr"' exec-cmd.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o dir.o -c -MF ./.depend/dir.o.d -MQ dir.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' dir.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' fmt-merge-msg.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o fsmonitor.o -c -MF ./.depend/fsmonitor.o.d -MQ fsmonitor.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' fsmonitor.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o fsmonitor-ipc.o -c -MF ./.depend/fsmonitor-ipc.o.d -MQ fsmonitor-ipc.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' fsmonitor-ipc.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o fsmonitor-settings.o -c -MF ./.depend/fsmonitor-settings.o.d -MQ fsmonitor-settings.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' fsmonitor-settings.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' fetch-pack.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o gettext.o -c -MF ./.depend/gettext.o.d -MQ gettext.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DGIT_LOCALE_PATH='"share/locale"' gettext.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o fsck.o -c -MF ./.depend/fsck.o.d -MQ fsck.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' fsck.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' gpg-interface.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o hash-lookup.o -c -MF ./.depend/hash-lookup.o.d -MQ hash-lookup.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' hash-lookup.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o graph.o -c -MF ./.depend/graph.o.d -MQ graph.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' graph.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
/bin/sh ./generate-cmdlist.sh \
\
command-list.txt >command-list.h
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o hex.o -c -MF ./.depend/hex.o.d -MQ hex.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' hex.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o hashmap.o -c -MF ./.depend/hashmap.o.d -MQ hashmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' hashmap.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o hook.o -c -MF ./.depend/hook.o.d -MQ hook.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' hook.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o grep.o -c -MF ./.depend/grep.o.d -MQ grep.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' grep.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o ident.o -c -MF ./.depend/ident.o.d -MQ ident.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' ident.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o json-writer.o -c -MF ./.depend/json-writer.o.d -MQ json-writer.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' json-writer.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o diff.o -c -MF ./.depend/diff.o.d -MQ diff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' diff.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o levenshtein.o -c -MF ./.depend/levenshtein.o.d -MQ levenshtein.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' levenshtein.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' line-range.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' linear-assignment.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o kwset.o -c -MF ./.depend/kwset.o.d -MQ kwset.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' kwset.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' list-objects-filter-options.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' list-objects-filter.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' list-objects.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' ll-merge.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' line-log.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o lockfile.o -c -MF ./.depend/lockfile.o.d -MQ lockfile.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' lockfile.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' ls-refs.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o mailmap.o -c -MF ./.depend/mailmap.o.d -MQ mailmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' mailmap.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' mem-pool.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' match-trees.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' merge-blobs.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' log-tree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' merge-ort-wrappers.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o mailinfo.o -c -MF ./.depend/mailinfo.o.d -MQ mailinfo.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' mailinfo.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o merge.o -c -MF ./.depend/merge.o.d -MQ merge.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' merge.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' name-hash.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' negotiator/default.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' negotiator/noop.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' negotiator/skipping.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o notes-cache.o -c -MF ./.depend/notes-cache.o.d -MQ notes-cache.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' notes-cache.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o midx.o -c -MF ./.depend/midx.o.d -MQ midx.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' midx.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' notes-utils.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' merge-recursive.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' notes-merge.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' merge-ort.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o notes.o -c -MF ./.depend/notes.o.d -MQ notes.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' notes.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' oid-array.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o oidmap.o -c -MF ./.depend/oidmap.o.d -MQ oidmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' oidmap.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o object.o -c -MF ./.depend/object.o.d -MQ object.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' object.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o oidtree.o -c -MF ./.depend/oidtree.o.d -MQ oidtree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' oidtree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o oidset.o -c -MF ./.depend/oidset.o.d -MQ oidset.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' oidset.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o object-name.o -c -MF ./.depend/object-name.o.d -MQ object-name.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' object-name.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o pack-check.o -c -MF ./.depend/pack-check.o.d -MQ pack-check.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' pack-check.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o object-file.o -c -MF ./.depend/object-file.o.d -MQ object-file.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' object-file.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o pack-mtimes.o -c -MF ./.depend/pack-mtimes.o.d -MQ pack-mtimes.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' pack-mtimes.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' pack-bitmap-write.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' pack-objects.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' pack-revindex.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' pack-write.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o pager.o -c -MF ./.depend/pager.o.d -MQ pager.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' parse-options-cb.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o parallel-checkout.o -c -MF ./.depend/parallel-checkout.o.d -MQ parallel-checkout.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' parallel-checkout.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' pack-bitmap.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o patch-delta.o -c -MF ./.depend/patch-delta.o.d -MQ patch-delta.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' patch-delta.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o patch-ids.o -c -MF ./.depend/patch-ids.o.d -MQ patch-ids.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' patch-ids.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o packfile.o -c -MF ./.depend/packfile.o.d -MQ packfile.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' packfile.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' parse-options.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' preload-index.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o pathspec.o -c -MF ./.depend/pathspec.o.d -MQ pathspec.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' pathspec.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o path.o -c -MF ./.depend/path.o.d -MQ path.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' path.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' pkt-line.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' prio-queue.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o prompt.o -c -MF ./.depend/prompt.o.d -MQ prompt.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' prompt.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o progress.o -c -MF ./.depend/progress.o.d -MQ progress.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' progress.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' promisor-remote.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o protocol.o -c -MF ./.depend/protocol.o.d -MQ protocol.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' protocol.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o protocol-caps.o -c -MF ./.depend/protocol-caps.o.d -MQ protocol-caps.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' protocol-caps.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' prune-packed.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reachable.o -c -MF ./.depend/reachable.o.d -MQ reachable.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reachable.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o quote.o -c -MF ./.depend/quote.o.d -MQ quote.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' quote.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' range-diff.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o pretty.o -c -MF ./.depend/pretty.o.d -MQ pretty.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' pretty.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o rebase.o -c -MF ./.depend/rebase.o.d -MQ rebase.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' rebase.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o rebase-interactive.o -c -MF ./.depend/rebase-interactive.o.d -MQ rebase-interactive.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' rebase-interactive.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reflog-walk.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reflog.o -c -MF ./.depend/reflog.o.d -MQ reflog.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reflog.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' refs/debug.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' read-cache.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' ref-filter.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o refs.o -c -MF ./.depend/refs.o.d -MQ refs.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' refs.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' refs/iterator.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o refspec.o -c -MF ./.depend/refspec.o.d -MQ refspec.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' refspec.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' refs/files-backend.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' refs/ref-cache.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' refs/packed-backend.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' replace-object.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' repo-settings.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reset.o -c -MF ./.depend/reset.o.d -MQ reset.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reset.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o repository.o -c -MF ./.depend/repository.o.d -MQ repository.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' repository.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o resolve-undo.o -c -MF ./.depend/resolve-undo.o.d -MQ resolve-undo.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' resolve-undo.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o rerere.o -c -MF ./.depend/rerere.o.d -MQ rerere.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' rerere.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' run-command.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' send-pack.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o remote.o -c -MF ./.depend/remote.o.d -MQ remote.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' remote.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o serve.o -c -MF ./.depend/serve.o.d -MQ serve.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' serve.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' server-info.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o setup.o -c -MF ./.depend/setup.o.d -MQ setup.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' setup.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o shallow.o -c -MF ./.depend/shallow.o.d -MQ shallow.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' shallow.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o revision.o -c -MF ./.depend/revision.o.d -MQ revision.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' revision.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o sigchain.o -c -MF ./.depend/sigchain.o.d -MQ sigchain.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' sigchain.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o sideband.o -c -MF ./.depend/sideband.o.d -MQ sideband.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' sideband.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o stable-qsort.o -c -MF ./.depend/stable-qsort.o.d -MQ stable-qsort.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' stable-qsort.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o split-index.o -c -MF ./.depend/split-index.o.d -MQ split-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' split-index.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o sparse-index.o -c -MF ./.depend/sparse-index.o.d -MQ sparse-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' sparse-index.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o streaming.o -c -MF ./.depend/streaming.o.d -MQ streaming.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' streaming.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' string-list.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o strmap.o -c -MF ./.depend/strmap.o.d -MQ strmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' strmap.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o strvec.o -c -MF ./.depend/strvec.o.d -MQ strvec.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' strvec.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' sub-process.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o strbuf.o -c -MF ./.depend/strbuf.o.d -MQ strbuf.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' strbuf.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' submodule-config.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o symlinks.o -c -MF ./.depend/symlinks.o.d -MQ symlinks.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' symlinks.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o tag.o -c -MF ./.depend/tag.o.d -MQ tag.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' tag.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' thread-utils.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o tempfile.o -c -MF ./.depend/tempfile.o.d -MQ tempfile.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' tempfile.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' tmp-objdir.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o trace.o -c -MF ./.depend/trace.o.d -MQ trace.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' trace.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o submodule.o -c -MF ./.depend/submodule.o.d -MQ submodule.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' submodule.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' trace2/tr2_cfg.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' trace2/tr2_cmd_name.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o trace2.o -c -MF ./.depend/trace2.o.d -MQ trace2.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' trace2.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o trace2/tr2_ctr.o -c -MF trace2/.depend/tr2_ctr.o.d -MQ trace2/tr2_ctr.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' trace2/tr2_ctr.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' trace2/tr2_dst.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' trace2/tr2_sysenv.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' trace2/tr2_sid.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' trace2/tr2_tbuf.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' trace2/tr2_tgt_normal.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' trace2/tr2_tgt_event.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' trace2/tr2_tls.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' trace2/tr2_tgt_perf.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o trace2/tr2_tmr.o -c -MF trace2/.depend/tr2_tmr.o.d -MQ trace2/tr2_tmr.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' trace2/tr2_tmr.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o sequencer.o -c -MF ./.depend/sequencer.o.d -MQ sequencer.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' sequencer.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' tree-diff.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o trailer.o -c -MF ./.depend/trailer.o.d -MQ trailer.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' trailer.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o transport-helper.o -c -MF ./.depend/transport-helper.o.d -MQ transport-helper.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' transport-helper.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o transport.o -c -MF ./.depend/transport.o.d -MQ transport.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' transport.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o tree.o -c -MF ./.depend/tree.o.d -MQ tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' tree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o url.o -c -MF ./.depend/url.o.d -MQ url.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' url.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' tree-walk.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o usage.o -c -MF ./.depend/usage.o.d -MQ usage.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' usage.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o urlmatch.o -c -MF ./.depend/urlmatch.o.d -MQ urlmatch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' urlmatch.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o userdiff.o -c -MF ./.depend/userdiff.o.d -MQ userdiff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' userdiff.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' upload-pack.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o varint.o -c -MF ./.depend/varint.o.d -MQ varint.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' varint.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o versioncmp.o -c -MF ./.depend/versioncmp.o.d -MQ versioncmp.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' versioncmp.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o walker.o -c -MF ./.depend/walker.o.d -MQ walker.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' walker.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o utf8.o -c -MF ./.depend/utf8.o.d -MQ utf8.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' utf8.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o wildmatch.o -c -MF ./.depend/wildmatch.o.d -MQ wildmatch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' wildmatch.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' write-or-die.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' unpack-trees.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o wrapper.o -c -MF ./.depend/wrapper.o.d -MQ wrapper.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' wrapper.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o worktree.o -c -MF ./.depend/worktree.o.d -MQ worktree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' worktree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o ws.o -c -MF ./.depend/ws.o.d -MQ ws.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' ws.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' unix-socket.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o zlib.o -c -MF ./.depend/zlib.o.d -MQ zlib.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' zlib.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' xdiff-interface.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o compat/simple-ipc/ipc-shared.o -c -MF compat/simple-ipc/.depend/ipc-shared.o.d -MQ compat/simple-ipc/ipc-shared.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' compat/simple-ipc/ipc-shared.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o unix-stream-server.o -c -MF ./.depend/unix-stream-server.o.d -MQ unix-stream-server.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' unix-stream-server.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' sha1dc_git.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o compat/simple-ipc/ipc-unix-socket.o -c -MF compat/simple-ipc/.depend/ipc-unix-socket.o.d -MQ compat/simple-ipc/ipc-unix-socket.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' compat/simple-ipc/ipc-unix-socket.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' sha1dc/ubc_check.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o compat/linux/procinfo.o -c -MF compat/linux/.depend/procinfo.o.d -MQ compat/linux/procinfo.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' compat/linux/procinfo.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' compat/fopen.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' compat/strlcpy.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' sha1dc/sha1.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' sha256/block/sha256.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' compat/qsort_s.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' wt-status.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' xdiff/xhistogram.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' xdiff/xemit.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' xdiff/xdiffi.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' xdiff/xpatience.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o xdiff/xprepare.o -c -MF xdiff/.depend/xprepare.o.d -MQ xdiff/xprepare.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' xdiff/xprepare.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/error.o -c -MF reftable/.depend/error.o.d -MQ reftable/error.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/error.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/basics.o -c -MF reftable/.depend/basics.o.d -MQ reftable/basics.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/basics.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o xdiff/xmerge.o -c -MF xdiff/.depend/xmerge.o.d -MQ xdiff/xmerge.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' xdiff/xmerge.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' xdiff/xutils.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/blocksource.o -c -MF reftable/.depend/blocksource.o.d -MQ reftable/blocksource.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/blocksource.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/iter.o -c -MF reftable/.depend/iter.o.d -MQ reftable/iter.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/iter.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/block.o -c -MF reftable/.depend/block.o.d -MQ reftable/block.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/block.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/publicbasics.o -c -MF reftable/.depend/publicbasics.o.d -MQ reftable/publicbasics.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/publicbasics.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/pq.o -c -MF reftable/.depend/pq.o.d -MQ reftable/pq.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/pq.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/merged.o -c -MF reftable/.depend/merged.o.d -MQ reftable/merged.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/merged.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/refname.o -c -MF reftable/.depend/refname.o.d -MQ reftable/refname.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/refname.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/generic.o -c -MF reftable/.depend/generic.o.d -MQ reftable/generic.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/generic.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/reader.o -c -MF reftable/.depend/reader.o.d -MQ reftable/reader.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/reader.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/tree.o -c -MF reftable/.depend/tree.o.d -MQ reftable/tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/tree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/record.o -c -MF reftable/.depend/record.o.d -MQ reftable/record.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/record.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/writer.o -c -MF reftable/.depend/writer.o.d -MQ reftable/writer.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/writer.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' http-backend.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/stack.o -c -MF reftable/.depend/stack.o.d -MQ reftable/stack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/stack.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' sh-i18n--envsubst.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o shell.o -c -MF ./.depend/shell.o.d -MQ shell.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' shell.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' http-fetch.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' imap-send.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' http-walker.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
* new script parameters
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
* new perl-specific parameters
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
* new Python interpreter location
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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/@@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|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-instaweb.sh >git-instaweb+ && \
chmod +x git-instaweb+ && \
mv git-instaweb+ git-instaweb
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o git.o -c -MF ./.depend/git.o.d -MQ git.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' '-DGIT_HTML_PATH="share/doc/git/html"' '-DGIT_MAN_PATH="share/man"' '-DGIT_INFO_PATH="share/info"' git.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' http-push.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' remote-curl.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o http.o -c -MF ./.depend/http.o.d -MQ http.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' http.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/annotate.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/apply.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/add.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/archive.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/blame.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
/bin/sh ./generate-hooklist.sh >hook-list.h
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o builtin/bisect.o -c -MF builtin/.depend/bisect.o.d -MQ builtin/bisect.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/bisect.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/bundle.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/branch.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/check-attr.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/check-ignore.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/am.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/check-mailmap.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/check-ref-format.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/cat-file.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o builtin/checkout--worker.o -c -MF builtin/.depend/checkout--worker.o.d -MQ builtin/checkout--worker.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/checkout--worker.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/checkout-index.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/column.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/commit-graph.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/clean.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/commit-tree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/clone.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/checkout.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/count-objects.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/credential-cache.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/credential-cache--daemon.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/config.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/credential.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/credential-store.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o builtin/diagnose.o -c -MF builtin/.depend/diagnose.o.d -MQ builtin/diagnose.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/diagnose.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/diff-files.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/diff-index.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/commit.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/diff-tree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/describe.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/diff.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/difftool.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/fetch-pack.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/fmt-merge-msg.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/fast-export.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o builtin/for-each-ref.o -c -MF builtin/.depend/for-each-ref.o.d -MQ builtin/for-each-ref.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/for-each-ref.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/for-each-repo.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o builtin/fsmonitor--daemon.o -c -MF builtin/.depend/fsmonitor--daemon.o.d -MQ builtin/fsmonitor--daemon.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/fsmonitor--daemon.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/fsck.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/get-tar-commit-id.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/fetch.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/hash-object.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
/bin/sh ./generate-configlist.sh >config-list.h
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o builtin/hook.o -c -MF builtin/.depend/hook.o.d -MQ builtin/hook.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/hook.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/gc.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DDEFAULT_GIT_TEMPLATE_DIR='"share/git-core/templates"' builtin/init-db.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/fast-import.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/grep.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/interpret-trailers.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/ls-remote.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/index-pack.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/ls-files.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/ls-tree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/mailinfo.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/merge-base.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/merge-file.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/mailsplit.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/merge-index.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/merge-ours.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/merge-recursive.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/mktag.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/log.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/merge-tree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o builtin/mktree.o -c -MF builtin/.depend/mktree.o.d -MQ builtin/mktree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/mktree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/multi-pack-index.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o builtin/mv.o -c -MF builtin/.depend/mv.o.d -MQ builtin/mv.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/mv.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o builtin/name-rev.o -c -MF builtin/.depend/name-rev.o.d -MQ builtin/name-rev.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/name-rev.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o builtin/merge.o -c -MF builtin/.depend/merge.o.d -MQ builtin/merge.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/merge.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/pack-refs.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o builtin/notes.o -c -MF builtin/.depend/notes.o.d -MQ builtin/notes.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/notes.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/patch-id.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/prune-packed.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/pack-redundant.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/prune.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/range-diff.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/push.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/pull.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/read-tree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/reflog.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o builtin/remote-ext.o -c -MF builtin/.depend/remote-ext.o.d -MQ builtin/remote-ext.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/remote-ext.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/remote-fd.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/receive-pack.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/rebase.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/pack-objects.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/rerere.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/replace.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/remote.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/reset.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/repack.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/rev-list.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/revert.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/rm.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/send-pack.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/show-index.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/rev-parse.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/shortlog.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/show-ref.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/stripspace.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/show-branch.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/sparse-checkout.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/symbolic-ref.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/unpack-file.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/stash.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/tag.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/unpack-objects.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/update-server-info.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/upload-archive.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/update-ref.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/upload-pack.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/var.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/update-index.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/verify-commit.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/verify-pack.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/verify-tag.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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/@@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|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-mergetool--lib.sh >git-mergetool--lib+ && \
mv git-mergetool--lib+ git-mergetool--lib
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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/@@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|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-sh-i18n.sh >git-sh-i18n+ && \
mv git-sh-i18n+ git-sh-i18n
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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/@@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|@@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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/write-tree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/submodule--helper.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/worktree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o scalar.o -c -MF ./.depend/scalar.o.d -MQ scalar.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' scalar.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o attr.o -c -MF ./.depend/attr.o.d -MQ attr.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DETC_GITATTRIBUTES='"/etc/gitattributes"' attr.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o version.o -c -MF ./.depend/version.o.d -MQ version.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' '-DGIT_VERSION="2.40.1"' '-DGIT_USER_AGENT="git/2.40.1"' '-DGIT_BUILT_FROM_COMMIT=""' version.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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/@@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|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-filter-branch.sh >git-filter-branch+ && \
chmod +x git-filter-branch+ && \
mv git-filter-branch+ git-filter-branch
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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/@@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|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-difftool--helper.sh >git-difftool--helper+ && \
chmod +x git-difftool--helper+ && \
mv git-difftool--helper+ git-difftool--helper
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f reftable/libreftable.a && ar rcs reftable/libreftable.a reftable/basics.o reftable/error.o reftable/block.o reftable/blocksource.o reftable/iter.o reftable/publicbasics.o reftable/merged.o reftable/pq.o reftable/reader.o reftable/record.o reftable/refname.o reftable/generic.o reftable/stack.o reftable/tree.o reftable/writer.o
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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/@@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|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-merge-octopus.sh >git-merge-octopus+ && \
chmod +x git-merge-octopus+ && \
mv git-merge-octopus+ git-merge-octopus
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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/@@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|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-merge-resolve.sh >git-merge-resolve+ && \
chmod +x git-merge-resolve+ && \
mv git-merge-resolve+ git-merge-resolve
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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/@@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|@@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
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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/@@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|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-mergetool.sh >git-mergetool+ && \
chmod +x git-mergetool+ && \
mv git-mergetool+ git-mergetool
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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/@@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|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-request-pull.sh >git-request-pull+ && \
chmod +x git-request-pull+ && \
mv git-request-pull+ git-request-pull
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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/@@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|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-quiltimport.sh >git-quiltimport+ && \
chmod +x git-quiltimport+ && \
mv git-quiltimport+ git-quiltimport
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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/@@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|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-web--browse.sh >git-web--browse+ && \
chmod +x git-web--browse+ && \
mv git-web--browse+ git-web--browse
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o help.o -c -MF ./.depend/help.o.d -MQ help.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' help.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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/@@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|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-submodule.sh >git-submodule+ && \
chmod +x git-submodule+ && \
mv git-submodule+ git-submodule
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
INSTLIBDIR='/usr/share/perl5' && \
INSTLIBDIR_EXTRA='' && \
INSTLIBDIR="$INSTLIBDIR${INSTLIBDIR_EXTRA:+:$INSTLIBDIR_EXTRA}" && \
sed -e 's=@@PATHSEP@@=:=g' \
-e "s=@@INSTLIBDIR@@=$INSTLIBDIR=g" \
-e 's=@@PERLLIBDIR_REL@@=share/perl5=g' \
-e 's=@@GITEXECDIR_REL@@=lib/git-core=g' \
-e 's=@@LOCALEDIR_REL@@=share/locale=g' \
perl/header_templates/fixed_prefix.template.pl >GIT-PERL-HEADER+ && \
mv GIT-PERL-HEADER+ GIT-PERL-HEADER
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e '1s|#!.*python|#!/usr/bin/python3|' \
git-p4.py >git-p4+ && \
chmod +x git-p4+ && \
mv git-p4+ git-p4
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e '1{' \
-e ' s|#!.*perl|#!/usr/bin/perl|' \
-e ' r GIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.40.1/g' \
git-archimport.perl >git-archimport+ && \
chmod +x git-archimport+ && \
mv git-archimport+ git-archimport
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e '1{' \
-e ' s|#!.*perl|#!/usr/bin/perl|' \
-e ' r GIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.40.1/g' \
git-cvsexportcommit.perl >git-cvsexportcommit+ && \
chmod +x git-cvsexportcommit+ && \
mv git-cvsexportcommit+ git-cvsexportcommit
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e '1{' \
-e ' s|#!.*perl|#!/usr/bin/perl|' \
-e ' r GIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.40.1/g' \
git-cvsimport.perl >git-cvsimport+ && \
chmod +x git-cvsimport+ && \
mv git-cvsimport+ git-cvsimport
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e '1{' \
-e ' s|#!.*perl|#!/usr/bin/perl|' \
-e ' r GIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.40.1/g' \
git-cvsserver.perl >git-cvsserver+ && \
chmod +x git-cvsserver+ && \
mv git-cvsserver+ git-cvsserver
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e '1{' \
-e ' s|#!.*perl|#!/usr/bin/perl|' \
-e ' r GIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.40.1/g' \
git-send-email.perl >git-send-email+ && \
chmod +x git-send-email+ && \
mv git-send-email+ git-send-email
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e '1{' \
-e ' s|#!.*perl|#!/usr/bin/perl|' \
-e ' r GIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.40.1/g' \
git-svn.perl >git-svn+ && \
chmod +x git-svn+ && \
mv git-svn+ git-svn
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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-uri.o bundle.o cache-tree.o cbtree.o chdir-notify.o checkout.o chunk-format.o color.o column.o combine-diff.o commit-graph.o commit-reach.o commit.o compat/nonblock.o compat/obstack.o compat/terminal.o compat/zlib-uncompress2.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 diagnose.o diff-delta.o diff-merges.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 diffcore-rotate.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 fsmonitor-ipc.o fsmonitor-settings.o gettext.o gpg-interface.o graph.o grep.o hash-lookup.o hashmap.o help.o hex.o hook.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 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-file.o object-name.o object.o oid-array.o oidmap.o oidset.o oidtree.o pack-bitmap-write.o pack-bitmap.o pack-check.o pack-mtimes.o pack-objects.o pack-revindex.o pack-write.o packfile.o pager.o parallel-checkout.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 protocol-caps.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 reflog.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 shallow.o sideband.o sigchain.o sparse-index.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_ctr.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 trace2/tr2_tmr.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 unix-stream-server.o compat/simple-ipc/ipc-shared.o compat/simple-ipc/ipc-unix-socket.o sha1dc_git.o sha1dc/sha1.o sha1dc/ubc_check.o sha256/block/sha256.o compat/linux/procinfo.o compat/fopen.o compat/strlcpy.o compat/qsort_s.o
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' builtin/bugreport.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' '-DGIT_HTML_PATH="share/doc/git/html"' '-DGIT_MAN_PATH="share/man"' '-DGIT_INFO_PATH="share/info"' builtin/help.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -o git-http-backend -Wl,-z,relro http-backend.o common-main.o libgit.a xdiff/lib.a reftable/libreftable.a libgit.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -o git-daemon -Wl,-z,relro daemon.o common-main.o libgit.a xdiff/lib.a reftable/libreftable.a libgit.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -o git-imap-send -Wl,-z,relro imap-send.o http.o common-main.o \
-lcurl libgit.a xdiff/lib.a reftable/libreftable.a libgit.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -o git-sh-i18n--envsubst -Wl,-z,relro sh-i18n--envsubst.o common-main.o libgit.a xdiff/lib.a reftable/libreftable.a libgit.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -o git-shell -Wl,-z,relro shell.o common-main.o libgit.a xdiff/lib.a reftable/libreftable.a libgit.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -o git-http-fetch -Wl,-z,relro http.o http-walker.o http-fetch.o common-main.o \
-lcurl libgit.a xdiff/lib.a reftable/libreftable.a libgit.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -o git-http-push -Wl,-z,relro http.o http-push.o common-main.o \
-lcurl -lexpat libgit.a xdiff/lib.a reftable/libreftable.a libgit.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -o git-remote-http -Wl,-z,relro remote-curl.o http.o http-walker.o common-main.o \
-lcurl -lexpat libgit.a xdiff/lib.a reftable/libreftable.a libgit.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 || \
cp git-remote-http git-remote-https
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-remote-ftp && \
ln git-remote-http git-remote-ftp 2>/dev/null || \
ln -s git-remote-http git-remote-ftp 2>/dev/null || \
cp git-remote-http git-remote-ftp
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-remote-ftps && \
ln git-remote-http git-remote-ftps 2>/dev/null || \
ln -s git-remote-http git-remote-ftps 2>/dev/null || \
cp git-remote-http git-remote-ftps
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -o scalar -Wl,-z,relro \
scalar.o common-main.o libgit.a xdiff/lib.a reftable/libreftable.a libgit.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -o git -Wl,-z,relro \
git.o builtin/add.o builtin/am.o builtin/annotate.o builtin/apply.o builtin/archive.o builtin/bisect.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--worker.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/diagnose.o builtin/diff-files.o builtin/diff-index.o builtin/diff-tree.o builtin/diff.o builtin/difftool.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/fsmonitor--daemon.o builtin/gc.o builtin/get-tar-commit-id.o builtin/grep.o builtin/hash-object.o builtin/help.o builtin/hook.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 reftable/libreftable.a libgit.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-bisect && \
ln git git-bisect 2>/dev/null || \
ln -s git git-bisect 2>/dev/null || \
cp git git-bisect
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-branch && \
ln git git-branch 2>/dev/null || \
ln -s git git-branch 2>/dev/null || \
cp git git-branch
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-bundle && \
ln git git-bundle 2>/dev/null || \
ln -s git git-bundle 2>/dev/null || \
cp git git-bundle
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-bugreport && \
ln git git-bugreport 2>/dev/null || \
ln -s git git-bugreport 2>/dev/null || \
cp git git-bugreport
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-cat-file && \
ln git git-cat-file 2>/dev/null || \
ln -s git git-cat-file 2>/dev/null || \
cp git git-cat-file
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-check-attr && \
ln git git-check-attr 2>/dev/null || \
ln -s git git-check-attr 2>/dev/null || \
cp git git-check-attr
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-check-mailmap && \
ln git git-check-mailmap 2>/dev/null || \
ln -s git git-check-mailmap 2>/dev/null || \
cp git git-check-mailmap
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-checkout--worker && \
ln git git-checkout--worker 2>/dev/null || \
ln -s git git-checkout--worker 2>/dev/null || \
cp git git-checkout--worker
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-checkout-index && \
ln git git-checkout-index 2>/dev/null || \
ln -s git git-checkout-index 2>/dev/null || \
cp git git-checkout-index
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-clean && \
ln git git-clean 2>/dev/null || \
ln -s git git-clean 2>/dev/null || \
cp git git-clean
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-clone && \
ln git git-clone 2>/dev/null || \
ln -s git git-clone 2>/dev/null || \
cp git git-clone
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-column && \
ln git git-column 2>/dev/null || \
ln -s git git-column 2>/dev/null || \
cp git git-column
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-commit && \
ln git git-commit 2>/dev/null || \
ln -s git git-commit 2>/dev/null || \
cp git git-commit
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-config && \
ln git git-config 2>/dev/null || \
ln -s git git-config 2>/dev/null || \
cp git git-config
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-count-objects && \
ln git git-count-objects 2>/dev/null || \
ln -s git git-count-objects 2>/dev/null || \
cp git git-count-objects
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-credential-cache--daemon && \
ln git git-credential-cache--daemon 2>/dev/null || \
ln -s git git-credential-cache--daemon 2>/dev/null || \
cp git git-credential-cache--daemon
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-credential-store && \
ln git git-credential-store 2>/dev/null || \
ln -s git git-credential-store 2>/dev/null || \
cp git git-credential-store
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-credential && \
ln git git-credential 2>/dev/null || \
ln -s git git-credential 2>/dev/null || \
cp git git-credential
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-diagnose && \
ln git git-diagnose 2>/dev/null || \
ln -s git git-diagnose 2>/dev/null || \
cp git git-diagnose
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-diff-files && \
ln git git-diff-files 2>/dev/null || \
ln -s git git-diff-files 2>/dev/null || \
cp git git-diff-files
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-diff-tree && \
ln git git-diff-tree 2>/dev/null || \
ln -s git git-diff-tree 2>/dev/null || \
cp git git-diff-tree
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-difftool && \
ln git git-difftool 2>/dev/null || \
ln -s git git-difftool 2>/dev/null || \
cp git git-difftool
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-fast-import && \
ln git git-fast-import 2>/dev/null || \
ln -s git git-fast-import 2>/dev/null || \
cp git git-fast-import
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-fetch-pack && \
ln git git-fetch-pack 2>/dev/null || \
ln -s git git-fetch-pack 2>/dev/null || \
cp git git-fetch-pack
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-fsck && \
ln git git-fsck 2>/dev/null || \
ln -s git git-fsck 2>/dev/null || \
cp git git-fsck
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-fsmonitor--daemon && \
ln git git-fsmonitor--daemon 2>/dev/null || \
ln -s git git-fsmonitor--daemon 2>/dev/null || \
cp git git-fsmonitor--daemon
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-gc && \
ln git git-gc 2>/dev/null || \
ln -s git git-gc 2>/dev/null || \
cp git git-gc
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-get-tar-commit-id && \
ln git git-get-tar-commit-id 2>/dev/null || \
ln -s git git-get-tar-commit-id 2>/dev/null || \
cp git git-get-tar-commit-id
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-grep && \
ln git git-grep 2>/dev/null || \
ln -s git git-grep 2>/dev/null || \
cp git git-grep
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-hook && \
ln git git-hook 2>/dev/null || \
ln -s git git-hook 2>/dev/null || \
cp git git-hook
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-index-pack && \
ln git git-index-pack 2>/dev/null || \
ln -s git git-index-pack 2>/dev/null || \
cp git git-index-pack
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-init-db && \
ln git git-init-db 2>/dev/null || \
ln -s git git-init-db 2>/dev/null || \
cp git git-init-db
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-mailinfo && \
ln git git-mailinfo 2>/dev/null || \
ln -s git git-mailinfo 2>/dev/null || \
cp git git-mailinfo
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-mailsplit && \
ln git git-mailsplit 2>/dev/null || \
ln -s git git-mailsplit 2>/dev/null || \
cp git git-mailsplit
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-merge-base && \
ln git git-merge-base 2>/dev/null || \
ln -s git git-merge-base 2>/dev/null || \
cp git git-merge-base
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-merge-file && \
ln git git-merge-file 2>/dev/null || \
ln -s git git-merge-file 2>/dev/null || \
cp git git-merge-file
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-merge-index && \
ln git git-merge-index 2>/dev/null || \
ln -s git git-merge-index 2>/dev/null || \
cp git git-merge-index
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-merge-tree && \
ln git git-merge-tree 2>/dev/null || \
ln -s git git-merge-tree 2>/dev/null || \
cp git git-merge-tree
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-merge && \
ln git git-merge 2>/dev/null || \
ln -s git git-merge 2>/dev/null || \
cp git git-merge
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-mktree && \
ln git git-mktree 2>/dev/null || \
ln -s git git-mktree 2>/dev/null || \
cp git git-mktree
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-multi-pack-index && \
ln git git-multi-pack-index 2>/dev/null || \
ln -s git git-multi-pack-index 2>/dev/null || \
cp git git-multi-pack-index
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-mv && \
ln git git-mv 2>/dev/null || \
ln -s git git-mv 2>/dev/null || \
cp git git-mv
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-name-rev && \
ln git git-name-rev 2>/dev/null || \
ln -s git git-name-rev 2>/dev/null || \
cp git git-name-rev
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-notes && \
ln git git-notes 2>/dev/null || \
ln -s git git-notes 2>/dev/null || \
cp git git-notes
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-pack-redundant && \
ln git git-pack-redundant 2>/dev/null || \
ln -s git git-pack-redundant 2>/dev/null || \
cp git git-pack-redundant
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-pack-objects && \
ln git git-pack-objects 2>/dev/null || \
ln -s git git-pack-objects 2>/dev/null || \
cp git git-pack-objects
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-pack-refs && \
ln git git-pack-refs 2>/dev/null || \
ln -s git git-pack-refs 2>/dev/null || \
cp git git-pack-refs
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-patch-id && \
ln git git-patch-id 2>/dev/null || \
ln -s git git-patch-id 2>/dev/null || \
cp git git-patch-id
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-prune-packed && \
ln git git-prune-packed 2>/dev/null || \
ln -s git git-prune-packed 2>/dev/null || \
cp git git-prune-packed
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-prune && \
ln git git-prune 2>/dev/null || \
ln -s git git-prune 2>/dev/null || \
cp git git-prune
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-pull && \
ln git git-pull 2>/dev/null || \
ln -s git git-pull 2>/dev/null || \
cp git git-pull
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-push && \
ln git git-push 2>/dev/null || \
ln -s git git-push 2>/dev/null || \
cp git git-push
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-range-diff && \
ln git git-range-diff 2>/dev/null || \
ln -s git git-range-diff 2>/dev/null || \
cp git git-range-diff
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-read-tree && \
ln git git-read-tree 2>/dev/null || \
ln -s git git-read-tree 2>/dev/null || \
cp git git-read-tree
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-rebase && \
ln git git-rebase 2>/dev/null || \
ln -s git git-rebase 2>/dev/null || \
cp git git-rebase
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-receive-pack && \
ln git git-receive-pack 2>/dev/null || \
ln -s git git-receive-pack 2>/dev/null || \
cp git git-receive-pack
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-remote-fd && \
ln git git-remote-fd 2>/dev/null || \
ln -s git git-remote-fd 2>/dev/null || \
cp git git-remote-fd
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-repack && \
ln git git-repack 2>/dev/null || \
ln -s git git-repack 2>/dev/null || \
cp git git-repack
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-replace && \
ln git git-replace 2>/dev/null || \
ln -s git git-replace 2>/dev/null || \
cp git git-replace
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-rerere && \
ln git git-rerere 2>/dev/null || \
ln -s git git-rerere 2>/dev/null || \
cp git git-rerere
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-reset && \
ln git git-reset 2>/dev/null || \
ln -s git git-reset 2>/dev/null || \
cp git git-reset
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-rev-parse && \
ln git git-rev-parse 2>/dev/null || \
ln -s git git-rev-parse 2>/dev/null || \
cp git git-rev-parse
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-rev-list && \
ln git git-rev-list 2>/dev/null || \
ln -s git git-rev-list 2>/dev/null || \
cp git git-rev-list
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-revert && \
ln git git-revert 2>/dev/null || \
ln -s git git-revert 2>/dev/null || \
cp git git-revert
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-rm && \
ln git git-rm 2>/dev/null || \
ln -s git git-rm 2>/dev/null || \
cp git git-rm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-send-pack && \
ln git git-send-pack 2>/dev/null || \
ln -s git git-send-pack 2>/dev/null || \
cp git git-send-pack
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-shortlog && \
ln git git-shortlog 2>/dev/null || \
ln -s git git-shortlog 2>/dev/null || \
cp git git-shortlog
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-show-branch && \
ln git git-show-branch 2>/dev/null || \
ln -s git git-show-branch 2>/dev/null || \
cp git git-show-branch
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-show-index && \
ln git git-show-index 2>/dev/null || \
ln -s git git-show-index 2>/dev/null || \
cp git git-show-index
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-show-ref && \
ln git git-show-ref 2>/dev/null || \
ln -s git git-show-ref 2>/dev/null || \
cp git git-show-ref
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-sparse-checkout && \
ln git git-sparse-checkout 2>/dev/null || \
ln -s git git-sparse-checkout 2>/dev/null || \
cp git git-sparse-checkout
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-stash && \
ln git git-stash 2>/dev/null || \
ln -s git git-stash 2>/dev/null || \
cp git git-stash
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-tag && \
ln git git-tag 2>/dev/null || \
ln -s git git-tag 2>/dev/null || \
cp git git-tag
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-symbolic-ref && \
ln git git-symbolic-ref 2>/dev/null || \
ln -s git git-symbolic-ref 2>/dev/null || \
cp git git-symbolic-ref
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-unpack-file && \
ln git git-unpack-file 2>/dev/null || \
ln -s git git-unpack-file 2>/dev/null || \
cp git git-unpack-file
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-unpack-objects && \
ln git git-unpack-objects 2>/dev/null || \
ln -s git git-unpack-objects 2>/dev/null || \
cp git git-unpack-objects
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-update-index && \
ln git git-update-index 2>/dev/null || \
ln -s git git-update-index 2>/dev/null || \
cp git git-update-index
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-update-ref && \
ln git git-update-ref 2>/dev/null || \
ln -s git git-update-ref 2>/dev/null || \
cp git git-update-ref
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-var && \
ln git git-var 2>/dev/null || \
ln -s git git-var 2>/dev/null || \
cp git git-var
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-verify-commit && \
ln git git-verify-commit 2>/dev/null || \
ln -s git git-verify-commit 2>/dev/null || \
cp git git-verify-commit
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-verify-tag && \
ln git git-verify-tag 2>/dev/null || \
ln -s git git-verify-tag 2>/dev/null || \
cp git git-verify-tag
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-worktree && \
ln git git-worktree 2>/dev/null || \
ln -s git git-worktree 2>/dev/null || \
cp git git-worktree
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-show && \
ln git git-show 2>/dev/null || \
ln -s git git-show 2>/dev/null || \
cp git git-show
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-stage && \
ln git git-stage 2>/dev/null || \
ln -s git git-stage 2>/dev/null || \
cp git git-stage
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-switch && \
ln git git-switch 2>/dev/null || \
ln -s git git-switch 2>/dev/null || \
cp git git-switch
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-version && \
ln git git-version 2>/dev/null || \
ln -s git git-version 2>/dev/null || \
cp git git-version
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f git-whatchanged && \
ln git git-whatchanged 2>/dev/null || \
ln -s git git-whatchanged 2>/dev/null || \
cp git git-whatchanged
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
/usr/bin/make -C git-gui gitexecdir='/usr/lib/git-core' all
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
GITGUI_VERSION = 0.21.GITGUI
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
* new locations or Tcl/Tk interpreter
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
msgfmt --statistics --tcl -l de -d po/ po/de.po
579 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
msgfmt --statistics --tcl -l fr -d po/ po/fr.po
520 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
msgfmt --statistics --tcl -l el -d po/ po/el.po
381 translated messages, 4 fuzzy translations, 6 untranslated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
msgfmt --statistics --tcl -l it -d po/ po/it.po
519 translated messages, 1 untranslated message.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
msgfmt --statistics --tcl -l bg -d po/ po/bg.po
565 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
msgfmt --statistics --tcl -l hu -d po/ po/hu.po
514 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
msgfmt --statistics --tcl -l nb -d po/ po/nb.po
474 translated messages, 39 untranslated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
msgfmt --statistics --tcl -l ja -d po/ po/ja.po
546 translated messages, 1 untranslated message.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
msgfmt --statistics --tcl -l pt_br -d po/ po/pt_br.po
520 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
msgfmt --statistics --tcl -l pt_pt -d po/ po/pt_pt.po
550 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
msgfmt --statistics --tcl -l sv -d po/ po/sv.po
547 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
msgfmt --statistics --tcl -l vi -d po/ po/vi.po
543 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
msgfmt --statistics --tcl -l zh_cn -d po/ po/zh_cn.po
366 translated messages, 7 fuzzy translations, 17 untranslated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
msgfmt --statistics --tcl -l ru -d po/ po/ru.po
579 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
rm -f git-gui git-gui+ && \
sed -e '1s|#!.*/sh|#!/bin/sh|' \
-e 's|@@SHELL_PATH@@|/bin/sh|' \
-e '1,30s|^ argv0=$0| argv0=$0|' \
-e '1,30s|^ exec wish | exec '\''wish'\'' |' \
-e 's/@@GITGUI_VERSION@@/0.21.GITGUI/g' \
-e 's|@@GITGUI_RELATIVE@@||' \
-e 's|@@GITGUI_LIBDIR@@|/usr/share/git-gui/lib|' \
git-gui.sh >git-gui+ && \
chmod +x git-gui+ && \
mv git-gui+ git-gui
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
make[3]: Entering directory '/<<PKGBUILDDIR>>/git-gui'
if echo \
source lib/class.tcl\; \
auto_mkindex lib about.tcl blame.tcl branch.tcl branch_checkout.tcl branch_create.tcl branch_delete.tcl branch_rename.tcl browser.tcl checkout_op.tcl choose_font.tcl choose_repository.tcl choose_rev.tcl chord.tcl class.tcl commit.tcl console.tcl database.tcl date.tcl diff.tcl encoding.tcl error.tcl index.tcl line.tcl logo.tcl merge.tcl mergetool.tcl option.tcl remote.tcl remote_add.tcl remote_branch_delete.tcl search.tcl shortcut.tcl spellcheck.tcl sshkey.tcl status_bar.tcl themed.tcl tools.tcl tools_dlg.tcl transport.tcl win32.tcl \
| tclsh ; then : ok; \
else \
echo >&2 " * tclsh failed; using unoptimized loading"; \
rm -f lib/tclIndex ; \
echo '# Autogenerated by git-gui Makefile' >lib/tclIndex && \
echo >>lib/tclIndex && \
echo 'class.tcl' >>lib/tclIndex && echo 'about.tcl' >>lib/tclIndex && echo 'blame.tcl' >>lib/tclIndex && echo 'branch.tcl' >>lib/tclIndex && echo 'branch_checkout.tcl' >>lib/tclIndex && echo 'branch_create.tcl' >>lib/tclIndex && echo 'branch_delete.tcl' >>lib/tclIndex && echo 'branch_rename.tcl' >>lib/tclIndex && echo 'browser.tcl' >>lib/tclIndex && echo 'checkout_op.tcl' >>lib/tclIndex && echo 'choose_font.tcl' >>lib/tclIndex && echo 'choose_repository.tcl' >>lib/tclIndex && echo 'choose_rev.tcl' >>lib/tclIndex && echo 'chord.tcl' >>lib/tclIndex && echo 'class.tcl' >>lib/tclIndex && echo 'commit.tcl' >>lib/tclIndex && echo 'console.tcl' >>lib/tclIndex && echo 'database.tcl' >>lib/tclIndex && echo 'date.tcl' >>lib/tclIndex && echo 'diff.tcl' >>lib/tclIndex && echo 'encoding.tcl' >>lib/tclIndex && echo 'error.tcl' >>lib/tclIndex && echo 'index.tcl' >>lib/tclIndex && echo 'line.tcl' >>lib/tclIndex && echo 'logo.tcl' >>lib/tclIndex && echo 'merge.tcl' >>lib/tclIndex && echo 'mergetool.tcl' >>lib/tclIndex && echo 'option.tcl' >>lib/tclIndex && echo 'remote.tcl' >>lib/tclIndex && echo 'remote_add.tcl' >>lib/tclIndex && echo 'remote_branch_delete.tcl' >>lib/tclIndex && echo 'search.tcl' >>lib/tclIndex && echo 'shortcut.tcl' >>lib/tclIndex && echo 'spellcheck.tcl' >>lib/tclIndex && echo 'sshkey.tcl' >>lib/tclIndex && echo 'status_bar.tcl' >>lib/tclIndex && echo 'themed.tcl' >>lib/tclIndex && echo 'tools.tcl' >>lib/tclIndex && echo 'tools_dlg.tcl' >>lib/tclIndex && echo 'transport.tcl' >>lib/tclIndex && echo 'win32.tcl' >>lib/tclIndex && \
echo >>lib/tclIndex ; \
fi
make[3]: Leaving directory '/<<PKGBUILDDIR>>/git-gui'
/usr/bin/make -C gitk-git all
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitk-git'
* new Tcl/Tk interpreter location
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitk-git'
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitk-git'
Generating catalog po/ca.msg
msgfmt --statistics --tcl po/ca.po -l ca -d po/
307 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitk-git'
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitk-git'
Generating catalog po/de.msg
msgfmt --statistics --tcl po/de.po -l de -d po/
307 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitk-git'
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitk-git'
Generating catalog po/es.msg
msgfmt --statistics --tcl po/es.po -l es -d po/
184 translated messages, 46 fuzzy translations, 77 untranslated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitk-git'
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitk-git'
Generating catalog po/bg.msg
msgfmt --statistics --tcl po/bg.po -l bg -d po/
317 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitk-git'
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitk-git'
Generating catalog po/fr.msg
msgfmt --statistics --tcl po/fr.po -l fr -d po/
311 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitk-git'
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitk-git'
Generating catalog po/hu.msg
msgfmt --statistics --tcl po/hu.po -l hu -d po/
277 translated messages, 18 fuzzy translations, 12 untranslated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitk-git'
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitk-git'
Generating catalog po/it.msg
msgfmt --statistics --tcl po/it.po -l it -d po/
274 translated messages, 17 fuzzy translations, 16 untranslated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitk-git'
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitk-git'
Generating catalog po/pt_br.msg
msgfmt --statistics --tcl po/pt_br.po -l pt_br -d po/
279 translated messages, 16 fuzzy translations, 12 untranslated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitk-git'
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitk-git'
Generating catalog po/ja.msg
msgfmt --statistics --tcl po/ja.po -l ja -d po/
311 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitk-git'
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitk-git'
Generating catalog po/pt_pt.msg
msgfmt --statistics --tcl po/pt_pt.po -l pt_pt -d po/
311 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitk-git'
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitk-git'
Generating catalog po/sv.msg
msgfmt --statistics --tcl po/sv.po -l sv -d po/
311 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitk-git'
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitk-git'
Generating catalog po/vi.msg
msgfmt --statistics --tcl po/vi.po -l vi -d po/
307 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitk-git'
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitk-git'
Generating catalog po/ru.msg
msgfmt --statistics --tcl po/ru.po -l ru -d po/
317 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitk-git'
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitk-git'
Generating catalog po/zh_cn.msg
msgfmt --statistics --tcl po/zh_cn.po -l zh_cn -d po/
317 translated messages.
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitk-git'
make[3]: Entering directory '/<<PKGBUILDDIR>>/gitk-git'
rm -f gitk-wish gitk-wish+ && \
sed -e '1,3s|^exec .* "$0"|exec wish "$0"|' <gitk >gitk-wish+ && \
chmod +x gitk-wish+ && \
mv -f gitk-wish+ gitk-wish
make[3]: Leaving directory '/<<PKGBUILDDIR>>/gitk-git'
/usr/bin/make -C templates SHELL_PATH='/bin/sh' PERL_PATH='/usr/bin/perl'
make[3]: Entering directory '/<<PKGBUILDDIR>>/templates'
: no custom templates yet
make[3]: Leaving directory '/<<PKGBUILDDIR>>/templates'
make[3]: Entering directory '/<<PKGBUILDDIR>>/templates'
umask 022 && ls *--* 2>/dev/null | \
while read boilerplate; \
do \
case "$boilerplate" in *~) continue ;; esac && \
dst=`echo "$boilerplate" | sed -e 's|^this|.|;s|--|/|g'` && \
dir=`expr "$dst" : '\(.*\)/'` && \
mkdir -p blt/$dir && \
case "$boilerplate" in \
*--) continue;; \
esac && \
sed -e '1s|#!.*/sh|#!/bin/sh|' \
-e 's|@SHELL_PATH@|/bin/sh|' \
-e 's|@PERL_PATH@|/usr/bin/perl|g' $boilerplate > \
blt/$dst && \
if test -x "$boilerplate"; then rx=rx; else rx=r; fi && \
chmod a+$rx "blt/$dst" || exit; \
done && \
date >boilerplates.made
make[3]: Leaving directory '/<<PKGBUILDDIR>>/templates'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/el/LC_MESSAGES/git.mo po/el.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/ca/LC_MESSAGES/git.mo po/ca.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/de/LC_MESSAGES/git.mo po/de.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/bg/LC_MESSAGES/git.mo po/bg.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/is/LC_MESSAGES/git.mo po/is.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/es/LC_MESSAGES/git.mo po/es.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/fr/LC_MESSAGES/git.mo po/fr.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/id/LC_MESSAGES/git.mo po/id.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/ko/LC_MESSAGES/git.mo po/ko.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/it/LC_MESSAGES/git.mo po/it.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/pl/LC_MESSAGES/git.mo po/pl.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/pt_PT/LC_MESSAGES/git.mo po/pt_PT.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/ru/LC_MESSAGES/git.mo po/ru.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/sv/LC_MESSAGES/git.mo po/sv.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/tr/LC_MESSAGES/git.mo po/tr.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/vi/LC_MESSAGES/git.mo po/vi.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/zh_CN/LC_MESSAGES/git.mo po/zh_CN.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
msgfmt --check -o po/build/locale/zh_TW/LC_MESSAGES/git.mo po/zh_TW.po
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
-e 's|@@NO_GETTEXT@@||g' \
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/I18N.pm > perl/build/lib/Git/I18N.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
-e 's|@@NO_GETTEXT@@||g' \
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git.pm > perl/build/lib/Git.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
-e 's|@@NO_GETTEXT@@||g' \
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/IndexInfo.pm > perl/build/lib/Git/IndexInfo.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
-e 's|@@NO_GETTEXT@@||g' \
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/LoadCPAN.pm > perl/build/lib/Git/LoadCPAN.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
-e 's|@@NO_GETTEXT@@||g' \
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/Packet.pm > perl/build/lib/Git/Packet.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
-e 's|@@NO_GETTEXT@@||g' \
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/LoadCPAN/Error.pm > perl/build/lib/Git/LoadCPAN/Error.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
-e 's|@@NO_GETTEXT@@||g' \
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/SVN.pm > perl/build/lib/Git/SVN.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
-e 's|@@NO_GETTEXT@@||g' \
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/SVN/GlobSpec.pm > perl/build/lib/Git/SVN/GlobSpec.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
-e 's|@@NO_GETTEXT@@||g' \
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/SVN/Editor.pm > perl/build/lib/Git/SVN/Editor.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
-e 's|@@NO_GETTEXT@@||g' \
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/SVN/Fetcher.pm > perl/build/lib/Git/SVN/Fetcher.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
-e 's|@@NO_GETTEXT@@||g' \
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/SVN/Log.pm > perl/build/lib/Git/SVN/Log.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
-e 's|@@NO_GETTEXT@@||g' \
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/SVN/Migration.pm > perl/build/lib/Git/SVN/Migration.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
-e 's|@@NO_GETTEXT@@||g' \
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/SVN/Prompt.pm > perl/build/lib/Git/SVN/Prompt.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
-e 's|@@NO_GETTEXT@@||g' \
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/SVN/Ra.pm > perl/build/lib/Git/SVN/Ra.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
-e 's|@@NO_GETTEXT@@||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 '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
-e 's|@@NO_GETTEXT@@||g' \
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/LoadCPAN/Mail/Address.pm > perl/build/lib/Git/LoadCPAN/Mail/Address.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \
-e 's|@@NO_GETTEXT@@||g' \
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \
< perl/Git/SVN/Memoize/YAML.pm > perl/build/lib/Git/SVN/Memoize/YAML.pm
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-fake-ssh.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/dump.o -c -MF reftable/.depend/dump.o.d -MQ reftable/dump.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/dump.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/basics_test.o -c -MF reftable/.depend/basics_test.o.d -MQ reftable/basics_test.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/basics_test.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/block_test.o -c -MF reftable/.depend/block_test.o.d -MQ reftable/block_test.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/block_test.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/pq_test.o -c -MF reftable/.depend/pq_test.o.d -MQ reftable/pq_test.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/pq_test.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/refname_test.o -c -MF reftable/.depend/refname_test.o.d -MQ reftable/refname_test.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/refname_test.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/merged_test.o -c -MF reftable/.depend/merged_test.o.d -MQ reftable/merged_test.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/merged_test.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/record_test.o -c -MF reftable/.depend/record_test.o.d -MQ reftable/record_test.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/record_test.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/test_framework.o -c -MF reftable/.depend/test_framework.o.d -MQ reftable/test_framework.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/test_framework.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/tree_test.o -c -MF reftable/.depend/tree_test.o.d -MQ reftable/tree_test.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/tree_test.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-tool.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-advise.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/readwrite_test.o -c -MF reftable/.depend/readwrite_test.o.d -MQ reftable/readwrite_test.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/readwrite_test.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-bitmap.o -c -MF t/helper/.depend/test-bitmap.o.d -MQ t/helper/test-bitmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-bitmap.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-bloom.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-bundle-uri.o -c -MF t/helper/.depend/test-bundle-uri.o.d -MQ t/helper/test-bundle-uri.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-bundle-uri.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-cache-tree.o -c -MF t/helper/.depend/test-cache-tree.o.d -MQ t/helper/test-cache-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-cache-tree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-chmtime.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-crontab.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-config.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-csprng.o -c -MF t/helper/.depend/test-csprng.o.d -MQ t/helper/test-csprng.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-csprng.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-delta.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-ctype.o -c -MF t/helper/.depend/test-ctype.o.d -MQ t/helper/test-ctype.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-ctype.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-date.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o reftable/stack_test.o -c -MF reftable/.depend/stack_test.o.d -MQ reftable/stack_test.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' reftable/stack_test.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-drop-caches.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-dir-iterator.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-dump-cache-tree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-dump-fsmonitor.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-dump-split-index.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-dump-untracked-cache.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-env-helper.o -c -MF t/helper/.depend/test-env-helper.o.d -MQ t/helper/test-env-helper.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-env-helper.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-example-decorate.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-fsmonitor-client.o -c -MF t/helper/.depend/test-fsmonitor-client.o.d -MQ t/helper/test-fsmonitor-client.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-fsmonitor-client.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-genrandom.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-genzeros.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-getcwd.o -c -MF t/helper/.depend/test-getcwd.o.d -MQ t/helper/test-getcwd.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-getcwd.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-fast-rebase.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-hash-speed.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-hash.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-hexdump.o -c -MF t/helper/.depend/test-hexdump.o.d -MQ t/helper/test-hexdump.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-hexdump.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-index-version.o -c -MF t/helper/.depend/test-index-version.o.d -MQ t/helper/test-index-version.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-index-version.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-hashmap.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-match-trees.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-lazy-init-name-hash.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-mktemp.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-json-writer.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-oid-array.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-oidmap.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-oidtree.o -c -MF t/helper/.depend/test-oidtree.o.d -MQ t/helper/test-oidtree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-oidtree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-online-cpus.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-parse-pathspec-file.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-pack-mtimes.o -c -MF t/helper/.depend/test-pack-mtimes.o.d -MQ t/helper/test-pack-mtimes.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-pack-mtimes.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-mergesort.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-partial-clone.o -c -MF t/helper/.depend/test-partial-clone.o.d -MQ t/helper/test-partial-clone.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-partial-clone.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-pcre2-config.o -c -MF t/helper/.depend/test-pcre2-config.o.d -MQ t/helper/test-pcre2-config.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-pcre2-config.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-parse-options.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-prio-queue.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-pkt-line.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-path-utils.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-progress.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-proc-receive.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-read-cache.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-reach.o -c -MF t/helper/.depend/test-reach.o.d -MQ t/helper/test-reach.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-reach.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-read-graph.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-read-midx.o -c -MF t/helper/.depend/test-read-midx.o.d -MQ t/helper/test-read-midx.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-read-midx.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-reftable.o -c -MF t/helper/.depend/test-reftable.o.d -MQ t/helper/test-reftable.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-reftable.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-regex.o -c -MF t/helper/.depend/test-regex.o.d -MQ t/helper/test-regex.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-regex.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-ref-store.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-repository.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-rot13-filter.o -c -MF t/helper/.depend/test-rot13-filter.o.d -MQ t/helper/test-rot13-filter.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-rot13-filter.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-revision-walking.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-scrap-cache-tree.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-sha1.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-serve-v2.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-sha256.o -c -MF t/helper/.depend/test-sha256.o.d -MQ t/helper/test-sha256.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-sha256.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-sigchain.o -c -MF t/helper/.depend/test-sigchain.o.d -MQ t/helper/test-sigchain.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-sigchain.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-run-command.o -c -MF t/helper/.depend/test-run-command.o.d -MQ t/helper/test-run-command.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-run-command.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-strcmp-offset.o -c -MF t/helper/.depend/test-strcmp-offset.o.d -MQ t/helper/test-strcmp-offset.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-strcmp-offset.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-submodule-nested-repo-config.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-simple-ipc.o -c -MF t/helper/.depend/test-simple-ipc.o.d -MQ t/helper/test-simple-ipc.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-simple-ipc.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-string-list.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-submodule-config.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-subprocess.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-urlmatch-normalization.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-submodule.o -c -MF t/helper/.depend/test-submodule.o.d -MQ t/helper/test-submodule.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-submodule.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -o t/helper/test-userdiff.o -c -MF t/helper/.depend/test-userdiff.o.d -MQ t/helper/test-userdiff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-userdiff.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-trace2.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-wildmatch.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
sed -e '1s|#!.*/sh|#!/bin/sh|' \
-e 's|@@BUILD_DIR@@|/<<PKGBUILDDIR>>|' \
-e 's|@@PROG@@|git|' < wrap-for-bin.sh > bin-wrappers/git && \
chmod +x bin-wrappers/git
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-windows-named-pipe.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
sed -e '1s|#!.*/sh|#!/bin/sh|' \
-e 's|@@BUILD_DIR@@|/<<PKGBUILDDIR>>|' \
-e 's|@@PROG@@|scalar|' < wrap-for-bin.sh > bin-wrappers/scalar && \
chmod +x bin-wrappers/scalar
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
sed -e '1s|#!.*/sh|#!/bin/sh|' \
-e 's|@@BUILD_DIR@@|/<<PKGBUILDDIR>>|' \
-e 's|@@PROG@@|git-receive-pack|' < wrap-for-bin.sh > bin-wrappers/git-receive-pack && \
chmod +x bin-wrappers/git-receive-pack
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
sed -e '1s|#!.*/sh|#!/bin/sh|' \
-e 's|@@BUILD_DIR@@|/<<PKGBUILDDIR>>|' \
-e 's|@@PROG@@|git-shell|' < wrap-for-bin.sh > bin-wrappers/git-shell && \
chmod +x bin-wrappers/git-shell
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
sed -e '1s|#!.*/sh|#!/bin/sh|' \
-e 's|@@BUILD_DIR@@|/<<PKGBUILDDIR>>|' \
-e 's|@@PROG@@|git-upload-archive|' < wrap-for-bin.sh > bin-wrappers/git-upload-archive && \
chmod +x bin-wrappers/git-upload-archive
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
sed -e '1s|#!.*/sh|#!/bin/sh|' \
-e 's|@@BUILD_DIR@@|/<<PKGBUILDDIR>>|' \
-e 's|@@PROG@@|git-upload-pack|' < wrap-for-bin.sh > bin-wrappers/git-upload-pack && \
chmod +x bin-wrappers/git-upload-pack
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
sed -e '1s|#!.*/sh|#!/bin/sh|' \
-e 's|@@BUILD_DIR@@|/<<PKGBUILDDIR>>|' \
-e 's|@@PROG@@|git-cvsserver|' < wrap-for-bin.sh > bin-wrappers/git-cvsserver && \
chmod +x bin-wrappers/git-cvsserver
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
sed -e '1s|#!.*/sh|#!/bin/sh|' \
-e 's|@@BUILD_DIR@@|/<<PKGBUILDDIR>>|' \
-e 's|@@PROG@@|t/helper/test-fake-ssh|' < wrap-for-bin.sh > bin-wrappers/test-fake-ssh && \
chmod +x bin-wrappers/test-fake-ssh
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
sed -e '1s|#!.*/sh|#!/bin/sh|' \
-e 's|@@BUILD_DIR@@|/<<PKGBUILDDIR>>|' \
-e 's|@@PROG@@|t/helper/test-tool|' < wrap-for-bin.sh > bin-wrappers/test-tool && \
chmod +x bin-wrappers/test-tool
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f reftable/libreftable_test.a && ar rcs reftable/libreftable_test.a reftable/basics_test.o reftable/block_test.o reftable/dump.o reftable/merged_test.o reftable/pq_test.o reftable/record_test.o reftable/readwrite_test.o reftable/refname_test.o reftable/stack_test.o reftable/test_framework.o reftable/tree_test.o
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-write-cache.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' t/helper/test-xml-encode.c
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -o t/helper/test-fake-ssh -Wl,-z,relro t/helper/test-fake-ssh.o common-main.o libgit.a xdiff/lib.a reftable/libreftable.a reftable/libreftable_test.a libgit.a xdiff/lib.a reftable/libreftable.a libgit.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSUPPORTS_SIMPLE_IPC -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_SYNC_FILE_RANGE -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -o t/helper/test-tool -Wl,-z,relro t/helper/test-tool.o common-main.o t/helper/test-advise.o t/helper/test-bitmap.o t/helper/test-bloom.o t/helper/test-bundle-uri.o t/helper/test-cache-tree.o t/helper/test-chmtime.o t/helper/test-config.o t/helper/test-crontab.o t/helper/test-csprng.o t/helper/test-ctype.o t/helper/test-date.o t/helper/test-delta.o t/helper/test-dir-iterator.o t/helper/test-drop-caches.o t/helper/test-dump-cache-tree.o t/helper/test-dump-fsmonitor.o t/helper/test-dump-split-index.o t/helper/test-dump-untracked-cache.o t/helper/test-env-helper.o t/helper/test-example-decorate.o t/helper/test-fast-rebase.o t/helper/test-fsmonitor-client.o t/helper/test-genrandom.o t/helper/test-genzeros.o t/helper/test-getcwd.o t/helper/test-hash-speed.o t/helper/test-hash.o t/helper/test-hashmap.o t/helper/test-hexdump.o t/helper/test-index-version.o t/helper/test-json-writer.o t/helper/test-lazy-init-name-hash.o t/helper/test-match-trees.o t/helper/test-mergesort.o t/helper/test-mktemp.o t/helper/test-oid-array.o t/helper/test-oidmap.o t/helper/test-oidtree.o t/helper/test-online-cpus.o t/helper/test-pack-mtimes.o t/helper/test-parse-options.o t/helper/test-parse-pathspec-file.o t/helper/test-partial-clone.o t/helper/test-path-utils.o t/helper/test-pcre2-config.o t/helper/test-pkt-line.o t/helper/test-prio-queue.o t/helper/test-proc-receive.o t/helper/test-progress.o t/helper/test-reach.o t/helper/test-read-cache.o t/helper/test-read-graph.o t/helper/test-read-midx.o t/helper/test-ref-store.o t/helper/test-reftable.o t/helper/test-regex.o t/helper/test-rot13-filter.o t/helper/test-repository.o t/helper/test-revision-walking.o t/helper/test-run-command.o t/helper/test-scrap-cache-tree.o t/helper/test-serve-v2.o t/helper/test-sha1.o t/helper/test-sha256.o t/helper/test-sigchain.o t/helper/test-simple-ipc.o t/helper/test-strcmp-offset.o t/helper/test-string-list.o t/helper/test-submodule-config.o t/helper/test-submodule-nested-repo-config.o t/helper/test-submodule.o t/helper/test-subprocess.o t/helper/test-trace2.o t/helper/test-urlmatch-normalization.o t/helper/test-userdiff.o t/helper/test-wildmatch.o t/helper/test-windows-named-pipe.o t/helper/test-write-cache.o t/helper/test-xml-encode.o libgit.a xdiff/lib.a reftable/libreftable.a reftable/libreftable_test.a libgit.a xdiff/lib.a reftable/libreftable.a libgit.a -lpcre2-8 -lz -lpthread -lrt
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f gitweb/static/gitweb.js gitweb/static/gitweb.js+ && \
cat gitweb/static/js/lib/common-lib.js gitweb/static/js/lib/datetime.js gitweb/static/js/lib/cookies.js gitweb/static/js/javascript-detection.js gitweb/static/js/adjust-timezone.js gitweb/static/js/blame_incremental.js >gitweb/static/gitweb.js+ && \
mv gitweb/static/gitweb.js+ gitweb/static/gitweb.js
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
rm -f gitweb/gitweb.cgi gitweb/gitweb.cgi+ && \
sed -e '1s|#!.*perl|#!/usr/bin/perl|' \
-e 's|++GIT_VERSION++|2.40.1|g' -e 's|++GIT_BINDIR++|/usr/bin|g' -e 's|++GITWEB_CONFIG++|gitweb_config.perl|g' -e 's|++GITWEB_CONFIG_SYSTEM++|/etc/gitweb.conf|g' -e 's|++GITWEB_CONFIG_COMMON++|/etc/gitweb-common.conf|g' -e 's|++GITWEB_HOME_LINK_STR++|projects|g' -e 's|++GITWEB_SITENAME++||g' -e 's|++GITWEB_PROJECTROOT++|/pub/git|g' -e 's|"++GITWEB_PROJECT_MAXDEPTH++"|2007|g' -e 's|++GITWEB_EXPORT_OK++||g' -e 's|++GITWEB_STRICT_EXPORT++||g' -e 's|++GITWEB_BASE_URL++||g' -e 's|++GITWEB_LIST++||g' -e 's|++GITWEB_HOMETEXT++|indextext.html|g' -e 's|++GITWEB_CSS++|static/gitweb.css|g' -e 's|++GITWEB_LOGO++|static/git-logo.png|g' -e 's|++GITWEB_FAVICON++|static/git-favicon.png|g' -e 's|++GITWEB_JS++|static/gitweb.js|g' -e 's|++GITWEB_SITE_HTML_HEAD_STRING++||g' -e 's|++GITWEB_SITE_HEADER++||g' -e 's|++GITWEB_SITE_FOOTER++||g' -e 's|++HIGHLIGHT_BIN++|highlight|g' gitweb/gitweb.perl >gitweb/gitweb.cgi+ && \
chmod +x gitweb/gitweb.cgi+ && \
mv gitweb/gitweb.cgi+ gitweb/gitweb.cgi
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[1]: Entering directory '/<<PKGBUILDDIR>>'
touch build-stamp
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
/usr/bin/make -C contrib/subtree all NO_OPENSSL=1 prefix=/usr gitexecdir=/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -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-VERSION-FILE
make[3]: 'GIT-VERSION-FILE' is up to date.
make[2]: Entering directory '/<<PKGBUILDDIR>>/contrib/subtree'
sed -e '1s|#!.*/sh|#!/bin/sh|' git-subtree.sh >git-subtree
chmod +x git-subtree
make[2]: Leaving directory '/<<PKGBUILDDIR>>/contrib/subtree'
make[1]: Entering directory '/<<PKGBUILDDIR>>'
ln -s contrib/subtree/git-subtree
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
debian/rules override_dh_auto_test-arch
test -z 'test' || \
GIT_SKIP_TESTS="t9128 t9167" \
GIT_TEST_OPTS='--verbose' /usr/bin/make test NO_OPENSSL=1 prefix=/usr gitexecdir=/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 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -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 '/<<PKGBUILDDIR>>'
\
sed -e '1{' \
-e ' s|#!.*perl|#!/usr/bin/perl|' \
-e ' r GIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.40.1/g' \
git-cvsexportcommit.perl >git-cvsexportcommit+ && \
chmod +x git-cvsexportcommit+ && \
mv git-cvsexportcommit+ git-cvsexportcommit
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e '1{' \
-e ' s|#!.*perl|#!/usr/bin/perl|' \
-e ' r GIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.40.1/g' \
git-archimport.perl >git-archimport+ && \
chmod +x git-archimport+ && \
mv git-archimport+ git-archimport
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e '1{' \
-e ' s|#!.*perl|#!/usr/bin/perl|' \
-e ' r GIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.40.1/g' \
git-send-email.perl >git-send-email+ && \
chmod +x git-send-email+ && \
mv git-send-email+ git-send-email
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e '1{' \
-e ' s|#!.*perl|#!/usr/bin/perl|' \
-e ' r GIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.40.1/g' \
git-svn.perl >git-svn+ && \
chmod +x git-svn+ && \
mv git-svn+ git-svn
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e '1{' \
-e ' s|#!.*perl|#!/usr/bin/perl|' \
-e ' r GIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.40.1/g' \
git-cvsimport.perl >git-cvsimport+ && \
chmod +x git-cvsimport+ && \
mv git-cvsimport+ git-cvsimport
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e '1{' \
-e ' s|#!.*perl|#!/usr/bin/perl|' \
-e ' r GIT-PERL-HEADER' \
-e ' G' \
-e '}' \
-e 's/@@GIT_VERSION@@/2.40.1/g' \
git-cvsserver.perl >git-cvsserver+ && \
chmod +x git-cvsserver+ && \
mv git-cvsserver+ git-cvsserver
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: Entering directory '/<<PKGBUILDDIR>>'
\
sed -e '1s|#!.*python|#!/usr/bin/python3|' \
git-p4.py >git-p4+ && \
chmod +x git-p4+ && \
mv git-p4+ git-p4
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
/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 '/<<PKGBUILDDIR>>/templates'
: no custom templates yet
make[3]: Leaving directory '/<<PKGBUILDDIR>>/templates'
/usr/bin/make -C t/ all
make[3]: Entering directory '/<<PKGBUILDDIR>>/t'
rm -f -r 'test-results'
make[3]: Leaving directory '/<<PKGBUILDDIR>>/t'
GIT_TEST_CHAIN_LINT=0 && export GIT_TEST_CHAIN_LINT && /usr/bin/make aggregate-results-and-cleanup
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0002-gitfile.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0002-gitfile/.git/
expecting success of 0002.1 'initial setup':
REAL="$(pwd)/.real" &&
mv .git "$REAL"
ok 1 - initial setup
expecting success of 0002.2 'bad setup: invalid .git file format':
echo "gitdir $REAL" >.git &&
test_must_fail git rev-parse 2>.err &&
test_i18ngrep "invalid gitfile format" .err
fatal: invalid gitfile format: /<<PKGBUILDDIR>>/t/trash directory.t0002-gitfile/.git
ok 2 - bad setup: invalid .git file format
expecting success of 0002.3 'bad setup: invalid .git file path':
echo "gitdir: $REAL.not" >.git &&
test_must_fail git rev-parse 2>.err &&
test_i18ngrep "not a git repository" .err
fatal: not a git repository: /<<PKGBUILDDIR>>/t/trash directory.t0002-gitfile/.real.not
ok 3 - bad setup: invalid .git file path
expecting success of 0002.4 'final setup + check rev-parse --git-dir':
echo "gitdir: $REAL" >.git &&
test "$REAL" = "$(git rev-parse --git-dir)"
ok 4 - final setup + check rev-parse --git-dir
expecting success of 0002.5 'check hash-object':
echo "foo" >bar &&
SHA=$(cat bar | git hash-object -w --stdin) &&
test_path_is_file "$REAL/objects/$(objpath $SHA)"
ok 5 - check hash-object
expecting success of 0002.6 'check cat-file':
git cat-file blob $SHA >actual &&
test_cmp bar actual
ok 6 - check cat-file
expecting success of 0002.7 'check update-index':
test_path_is_missing "$REAL/index" &&
rm -f "$REAL/objects/$(objpath $SHA)" &&
git update-index --add bar &&
test_path_is_file "$REAL/index" &&
test_path_is_file "$REAL/objects/$(objpath $SHA)"
ok 7 - check update-index
expecting success of 0002.8 'check write-tree':
SHA=$(git write-tree) &&
test_path_is_file "$REAL/objects/$(objpath $SHA)"
ok 8 - check write-tree
expecting success of 0002.9 'check commit-tree':
SHA=$(echo "commit bar" | git commit-tree $SHA) &&
test_path_is_file "$REAL/objects/$(objpath $SHA)"
ok 9 - check commit-tree
expecting success of 0002.10 'check rev-list':
git update-ref "HEAD" "$SHA" &&
git rev-list HEAD >actual &&
echo $SHA >expected &&
test_cmp expected actual
ok 10 - check rev-list
expecting success of 0002.11 'setup_git_dir twice in subdir':
git init sgd &&
(
cd sgd &&
git config alias.lsfi ls-files &&
mv .git .realgit &&
echo "gitdir: .realgit" >.git &&
mkdir subdir &&
cd subdir &&
>foo &&
git add foo &&
git lsfi >actual &&
echo foo >expected &&
test_cmp expected actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0002-gitfile/sgd/.git/
ok 11 - setup_git_dir twice in subdir
expecting success of 0002.12 'enter_repo non-strict mode':
test_create_repo enter_repo &&
(
cd enter_repo &&
test_tick &&
test_commit foo &&
mv .git .realgit &&
echo "gitdir: .realgit" >.git
) &&
head=$(git -C enter_repo rev-parse HEAD) &&
git ls-remote enter_repo >actual &&
cat >expected <<-EOF &&
$head HEAD
$head refs/heads/main
$head refs/tags/foo
EOF
test_cmp expected actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0002-gitfile/enter_repo/.git/
[main (root-commit) 946e985] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
ok 12 - enter_repo non-strict mode
expecting success of 0002.13 'enter_repo linked checkout':
(
cd enter_repo &&
git worktree add ../foo refs/tags/foo
) &&
head=$(git -C enter_repo rev-parse HEAD) &&
git ls-remote foo >actual &&
cat >expected <<-EOF &&
$head HEAD
$head refs/heads/main
$head refs/tags/foo
EOF
test_cmp expected actual
Preparing worktree (detached HEAD 946e985)
HEAD is now at 946e985 foo
ok 13 - enter_repo linked checkout
expecting success of 0002.14 'enter_repo strict mode':
head=$(git -C enter_repo rev-parse HEAD) &&
git ls-remote --upload-pack="git upload-pack --strict" foo/.git >actual &&
cat >expected <<-EOF &&
$head HEAD
$head refs/heads/main
$head refs/tags/foo
EOF
test_cmp expected actual
ok 14 - enter_repo strict mode
# passed all 14 test(s)
1..14
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0004-unwritable.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <author@example.com>
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 2>out.write-tree
ok 2 - write-tree should notice unwritable repository
checking prerequisite: WRITE_TREE_OUT
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-WRITE_TREE_OUT" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-WRITE_TREE_OUT" &&test -e "$TRASH_DIRECTORY"/out.write-tree
)
prerequisite WRITE_TREE_OUT ok
expecting success of 0004.3 'write-tree output on unwritable repository':
cat >expect <<-\EOF &&
error: insufficient permission for adding an object to repository database .git/objects
fatal: git-write-tree: error building trees
EOF
test_cmp expect out.write-tree
ok 3 - write-tree output on unwritable repository
expecting success of 0004.4 '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 2>out.commit
ok 4 - commit should notice unwritable repository
checking prerequisite: COMMIT_OUT
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-COMMIT_OUT" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-COMMIT_OUT" &&test -e "$TRASH_DIRECTORY"/out.commit
)
prerequisite COMMIT_OUT ok
expecting success of 0004.5 'commit output on unwritable repository':
cat >expect <<-\EOF &&
error: insufficient permission for adding an object to repository database .git/objects
error: Error building trees
EOF
test_cmp expect out.commit
ok 5 - commit output on unwritable repository
expecting success of 0004.6 '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 2>out.update-index
ok 6 - update-index should notice unwritable repository
checking prerequisite: UPDATE_INDEX_OUT
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-UPDATE_INDEX_OUT" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-UPDATE_INDEX_OUT" &&test -e "$TRASH_DIRECTORY"/out.update-index
)
prerequisite UPDATE_INDEX_OUT ok
expecting success of 0004.7 'update-index output on unwritable repository':
cat >expect <<-\EOF &&
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
EOF
test_cmp expect out.update-index
ok 7 - update-index output on unwritable repository
expecting success of 0004.8 '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 2>out.add
ok 8 - add should notice unwritable repository
checking prerequisite: ADD_OUT
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-ADD_OUT" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-ADD_OUT" &&test -e "$TRASH_DIRECTORY"/out.add
)
prerequisite ADD_OUT ok
expecting success of 0004.9 'add output on unwritable repository':
cat >expect <<-\EOF &&
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
EOF
test_cmp expect out.add
ok 9 - add output on unwritable repository
# passed all 9 test(s)
1..9
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0005-signals.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0003-attributes.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0003-attributes/.git/
expecting success of 0003.1 'open-quoted pathname':
echo "\"a test=a" >.gitattributes &&
attr_check a unspecified
ok 1 - open-quoted pathname
expecting success of 0003.2 'setup':
mkdir -p a/b/d a/c b &&
(
echo "[attr]notest !test" &&
echo "\" d \" test=d" &&
echo " e test=e" &&
echo " e\" test=e" &&
echo "f test=f" &&
echo "a/i test=a/i" &&
echo "onoff test -test" &&
echo "offon -test test" &&
echo "no notest" &&
echo "A/e/F test=A/e/F"
) >.gitattributes &&
(
echo "g test=a/g" &&
echo "b/g test=a/b/g"
) >a/.gitattributes &&
(
echo "h test=a/b/h" &&
echo "d/* test=a/b/d/*" &&
echo "d/yes notest"
) >a/b/.gitattributes &&
(
echo "global test=global"
) >"$HOME"/global-gitattributes &&
cat <<-EOF >expect-all
f: test: f
a/f: test: f
a/c/f: test: f
a/g: test: a/g
a/b/g: test: a/b/g
b/g: test: unspecified
a/b/h: test: a/b/h
a/b/d/g: test: a/b/d/*
onoff: test: unset
offon: test: set
no: notest: set
no: test: unspecified
a/b/d/no: notest: set
a/b/d/no: test: a/b/d/*
a/b/d/yes: notest: set
a/b/d/yes: test: unspecified
EOF
ok 2 - setup
expecting success of 0003.3 'setup branches':
mkdir -p foo/bar &&
test_commit --printf "add .gitattributes" foo/bar/.gitattributes \
"f test=f\na/i test=n\n" tag-1 &&
test_commit --printf "add .gitattributes" foo/bar/.gitattributes \
"g test=g\na/i test=m\n" tag-2 &&
rm foo/bar/.gitattributes
[master (root-commit) df8bf8d] add .gitattributes
Author: A U Thor <author@example.com>
1 file changed, 2 insertions(+)
create mode 100644 foo/bar/.gitattributes
[master 2e229b7] add .gitattributes
Author: A U Thor <author@example.com>
1 file changed, 2 insertions(+), 2 deletions(-)
ok 3 - setup branches
expecting success of 0003.4 'command line checks':
test_must_fail git check-attr &&
test_must_fail git check-attr -- &&
test_must_fail git check-attr test &&
test_must_fail git check-attr test -- &&
test_must_fail git check-attr -- f &&
test_must_fail git check-attr --source &&
test_must_fail git check-attr --source not-a-valid-ref &&
echo "f" | test_must_fail git check-attr --stdin &&
echo "f" | test_must_fail git check-attr --stdin -- f &&
echo "f" | test_must_fail git check-attr --stdin test -- f &&
test_must_fail git check-attr "" -- f
error: No attribute specified
usage: git check-attr [--source <tree-ish>] [-a | --all | <attr>...] [--] <pathname>...
or: git check-attr --stdin [-z] [--source <tree-ish>] [-a | --all | <attr>...]
-a, --all report all attributes set on file
--cached use .gitattributes only from the index
--stdin read file names from stdin
-z terminate input and output records by a NUL character
--source <tree-ish> which tree-ish to check attributes at
error: No attribute specified
usage: git check-attr [--source <tree-ish>] [-a | --all | <attr>...] [--] <pathname>...
or: git check-attr --stdin [-z] [--source <tree-ish>] [-a | --all | <attr>...]
-a, --all report all attributes set on file
--cached use .gitattributes only from the index
--stdin read file names from stdin
-z terminate input and output records by a NUL character
--source <tree-ish> which tree-ish to check attributes at
error: No file specified
usage: git check-attr [--source <tree-ish>] [-a | --all | <attr>...] [--] <pathname>...
or: git check-attr --stdin [-z] [--source <tree-ish>] [-a | --all | <attr>...]
-a, --all report all attributes set on file
--cached use .gitattributes only from the index
--stdin read file names from stdin
-z terminate input and output records by a NUL character
--source <tree-ish> which tree-ish to check attributes at
error: No file specified
usage: git check-attr [--source <tree-ish>] [-a | --all | <attr>...] [--] <pathname>...
or: git check-attr --stdin [-z] [--source <tree-ish>] [-a | --all | <attr>...]
-a, --all report all attributes set on file
--cached use .gitattributes only from the index
--stdin read file names from stdin
-z terminate input and output records by a NUL character
--source <tree-ish> which tree-ish to check attributes at
error: No attribute specified
usage: git check-attr [--source <tree-ish>] [-a | --all | <attr>...] [--] <pathname>...
or: git check-attr --stdin [-z] [--source <tree-ish>] [-a | --all | <attr>...]
-a, --all report all attributes set on file
--cached use .gitattributes only from the index
--stdin read file names from stdin
-z terminate input and output records by a NUL character
--source <tree-ish> which tree-ish to check attributes at
error: option `source' requires a value
error: No attribute specified
usage: git check-attr [--source <tree-ish>] [-a | --all | <attr>...] [--] <pathname>...
or: git check-attr --stdin [-z] [--source <tree-ish>] [-a | --all | <attr>...]
-a, --all report all attributes set on file
--cached use .gitattributes only from the index
--stdin read file names from stdin
-z terminate input and output records by a NUL character
--source <tree-ish> which tree-ish to check attributes at
error: No attribute specified
usage: git check-attr [--source <tree-ish>] [-a | --all | <attr>...] [--] <pathname>...
or: git check-attr --stdin [-z] [--source <tree-ish>] [-a | --all | <attr>...]
-a, --all report all attributes set on file
--cached use .gitattributes only from the index
--stdin read file names from stdin
-z terminate input and output records by a NUL character
--source <tree-ish> which tree-ish to check attributes at
error: No attribute specified
usage: git check-attr [--source <tree-ish>] [-a | --all | <attr>...] [--] <pathname>...
or: git check-attr --stdin [-z] [--source <tree-ish>] [-a | --all | <attr>...]
-a, --all report all attributes set on file
--cached use .gitattributes only from the index
--stdin read file names from stdin
-z terminate input and output records by a NUL character
--source <tree-ish> which tree-ish to check attributes at
error: Can't specify files with --stdin
usage: git check-attr [--source <tree-ish>] [-a | --all | <attr>...] [--] <pathname>...
or: git check-attr --stdin [-z] [--source <tree-ish>] [-a | --all | <attr>...]
-a, --all report all attributes set on file
--cached use .gitattributes only from the index
--stdin read file names from stdin
-z terminate input and output records by a NUL character
--source <tree-ish> which tree-ish to check attributes at
error: : not a valid attribute name
ok 4 - command line checks
expecting success of 0003.5 'attribute test':
attr_check " d " d &&
attr_check e e &&
attr_check_quote e\" e\\\" e &&
attr_check f f &&
attr_check a/f f &&
attr_check a/c/f f &&
attr_check a/g a/g &&
attr_check a/b/g a/b/g &&
attr_check b/g unspecified &&
attr_check a/b/h a/b/h &&
attr_check a/b/d/g "a/b/d/*" &&
attr_check onoff unset &&
attr_check offon set &&
attr_check no unspecified &&
attr_check a/b/d/no "a/b/d/*" &&
attr_check a/b/d/yes unspecified
ok 5 - attribute test
expecting success of 0003.6 'attribute matching is case sensitive when core.ignorecase=0':
attr_check F unspecified "-c core.ignorecase=0" &&
attr_check a/F unspecified "-c core.ignorecase=0" &&
attr_check a/c/F unspecified "-c core.ignorecase=0" &&
attr_check a/G unspecified "-c core.ignorecase=0" &&
attr_check a/B/g a/g "-c core.ignorecase=0" &&
attr_check a/b/G unspecified "-c core.ignorecase=0" &&
attr_check a/b/H unspecified "-c core.ignorecase=0" &&
attr_check a/b/D/g a/g "-c core.ignorecase=0" &&
attr_check oNoFf unspecified "-c core.ignorecase=0" &&
attr_check oFfOn unspecified "-c core.ignorecase=0" &&
attr_check NO unspecified "-c core.ignorecase=0" &&
attr_check a/b/D/NO unspecified "-c core.ignorecase=0" &&
attr_check a/b/d/YES a/b/d/* "-c core.ignorecase=0" &&
attr_check a/E/f f "-c core.ignorecase=0"
ok 6 - attribute matching is case sensitive when core.ignorecase=0
expecting success of 0003.7 'attribute matching is case insensitive when core.ignorecase=1':
attr_check F f "-c core.ignorecase=1" &&
attr_check a/F f "-c core.ignorecase=1" &&
attr_check a/c/F f "-c core.ignorecase=1" &&
attr_check a/G a/g "-c core.ignorecase=1" &&
attr_check a/B/g a/b/g "-c core.ignorecase=1" &&
attr_check a/b/G a/b/g "-c core.ignorecase=1" &&
attr_check a/b/H a/b/h "-c core.ignorecase=1" &&
attr_check a/b/D/g "a/b/d/*" "-c core.ignorecase=1" &&
attr_check oNoFf unset "-c core.ignorecase=1" &&
attr_check oFfOn set "-c core.ignorecase=1" &&
attr_check NO unspecified "-c core.ignorecase=1" &&
attr_check a/b/D/NO "a/b/d/*" "-c core.ignorecase=1" &&
attr_check a/b/d/YES unspecified "-c core.ignorecase=1" &&
attr_check a/E/f "A/e/F" "-c core.ignorecase=1"
ok 7 - attribute matching is case insensitive when core.ignorecase=1
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
ok 8 # skip additional case insensitivity tests (missing CASE_INSENSITIVE_FS)
expecting success of 0003.9 'unnormalized paths':
attr_check ./f f &&
attr_check ./a/g a/g &&
attr_check a/./g a/g &&
attr_check a/c/../b/g a/b/g
ok 9 - unnormalized paths
expecting success of 0003.10 'relative paths':
(cd a && attr_check ../f f) &&
(cd a && attr_check f f) &&
(cd a && attr_check i a/i) &&
(cd a && attr_check g a/g) &&
(cd a && attr_check b/g a/b/g) &&
(cd b && attr_check ../a/f f) &&
(cd b && attr_check ../a/g a/g) &&
(cd b && attr_check ../a/b/g a/b/g)
ok 10 - relative paths
expecting success of 0003.11 'prefixes are not confused with leading directories':
attr_check a_plus/g unspecified &&
cat >expect <<-\EOF &&
a/g: test: a/g
a_plus/g: test: unspecified
EOF
git check-attr test a/g a_plus/g >actual &&
test_cmp expect actual
ok 11 - prefixes are not confused with leading directories
expecting success of 0003.12 'core.attributesfile':
attr_check global unspecified &&
git config core.attributesfile "$HOME/global-gitattributes" &&
attr_check global global &&
git config core.attributesfile "~/global-gitattributes" &&
attr_check global global &&
echo "global test=precedence" >>.gitattributes &&
attr_check global precedence
ok 12 - core.attributesfile
expecting success of 0003.13 'attribute test: read paths from stdin':
grep -v notest <expect-all >expect &&
sed -e "s/:.*//" <expect | git check-attr --stdin test >actual &&
test_cmp expect actual
ok 13 - attribute test: read paths from stdin
expecting success of 0003.14 'setup --all option':
grep -v unspecified <expect-all | sort >specified-all &&
sed -e "s/:.*//" <expect-all | uniq >stdin-all
ok 14 - setup --all option
expecting success of 0003.15 'attribute test: --all option':
git check-attr --stdin --all <stdin-all >tmp &&
sort tmp >actual &&
test_cmp specified-all actual
ok 15 - attribute test: --all option
expecting success of 0003.16 'attribute test: --cached option':
git check-attr --cached --stdin --all <stdin-all >tmp &&
sort tmp >actual &&
test_must_be_empty actual &&
git add .gitattributes a/.gitattributes a/b/.gitattributes &&
git check-attr --cached --stdin --all <stdin-all >tmp &&
sort tmp >actual &&
test_cmp specified-all actual
ok 16 - attribute test: --cached option
expecting success of 0003.17 'root subdir attribute test':
attr_check a/i a/i &&
attr_check subdir/a/i unspecified
ok 17 - root subdir attribute test
expecting success of 0003.18 'negative patterns':
echo "!f test=bar" >.gitattributes &&
git check-attr test -- '!f' 2>errors &&
test_i18ngrep "Negative patterns are ignored" errors
!f: test: unspecified
warning: Negative patterns are ignored in git attributes
ok 18 - negative patterns
expecting success of 0003.19 'patterns starting with exclamation':
echo "\!f test=foo" >.gitattributes &&
attr_check "!f" foo
ok 19 - patterns starting with exclamation
expecting success of 0003.20 '"**" test':
echo "**/f foo=bar" >.gitattributes &&
cat <<\EOF >expect &&
f: foo: bar
a/f: foo: bar
a/b/f: foo: bar
a/b/c/f: foo: bar
EOF
git check-attr foo -- "f" >actual 2>err &&
git check-attr foo -- "a/f" >>actual 2>>err &&
git check-attr foo -- "a/b/f" >>actual 2>>err &&
git check-attr foo -- "a/b/c/f" >>actual 2>>err &&
test_cmp expect actual &&
test_must_be_empty err
ok 20 - "**" test
expecting success of 0003.21 '"**" with no slashes test':
echo "a**f foo=bar" >.gitattributes &&
git check-attr foo -- "f" >actual &&
cat <<\EOF >expect &&
f: foo: unspecified
af: foo: bar
axf: foo: bar
a/f: foo: unspecified
a/b/f: foo: unspecified
a/b/c/f: foo: unspecified
EOF
git check-attr foo -- "f" >actual 2>err &&
git check-attr foo -- "af" >>actual 2>err &&
git check-attr foo -- "axf" >>actual 2>err &&
git check-attr foo -- "a/f" >>actual 2>>err &&
git check-attr foo -- "a/b/f" >>actual 2>>err &&
git check-attr foo -- "a/b/c/f" >>actual 2>>err &&
test_cmp expect actual &&
test_must_be_empty err
ok 21 - "**" with no slashes test
expecting success of 0003.22 'using --git-dir and --work-tree':
mkdir unreal real &&
git init real &&
echo "file test=in-real" >real/.gitattributes &&
(
cd unreal &&
attr_check file in-real "--git-dir ../real/.git --work-tree ../real"
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0003-attributes/real/.git/
ok 22 - using --git-dir and --work-tree
expecting success of 0003.23 'using --source':
attr_check_source foo/bar/f f tag-1 &&
attr_check_source foo/bar/a/i n tag-1 &&
attr_check_source foo/bar/f unspecified tag-2 &&
attr_check_source foo/bar/a/i m tag-2 &&
attr_check_source foo/bar/g g tag-2 &&
attr_check_source foo/bar/g unspecified tag-1
ok 23 - using --source
expecting success of 0003.24 'setup bare':
git clone --template= --bare . bare.git
Cloning into bare repository 'bare.git'...
done.
ok 24 - setup bare
expecting success of 0003.25 'bare repository: check that .gitattribute is ignored':
(
cd bare.git &&
(
echo "f test=f" &&
echo "a/i test=a/i"
) >.gitattributes &&
attr_check f unspecified &&
attr_check a/f unspecified &&
attr_check a/c/f unspecified &&
attr_check a/i unspecified &&
attr_check subdir/a/i unspecified
)
ok 25 - bare repository: check that .gitattribute is ignored
expecting success of 0003.26 'bare repository: with --source':
(
cd bare.git &&
attr_check_source foo/bar/f f tag-1 &&
attr_check_source foo/bar/a/i n tag-1 &&
attr_check_source foo/bar/f unspecified tag-2 &&
attr_check_source foo/bar/a/i m tag-2 &&
attr_check_source foo/bar/g g tag-2 &&
attr_check_source foo/bar/g unspecified tag-1
)
ok 26 - bare repository: with --source
expecting success of 0003.27 'bare repository: check that --cached honors index':
(
cd bare.git &&
GIT_INDEX_FILE=../.git/index \
git check-attr --cached --stdin --all <../stdin-all |
sort >actual &&
test_cmp ../specified-all actual
)
ok 27 - bare repository: check that --cached honors index
expecting success of 0003.28 'bare repository: test info/attributes':
(
cd bare.git &&
mkdir info &&
(
echo "f test=f" &&
echo "a/i test=a/i"
) >info/attributes &&
attr_check f f &&
attr_check a/f f &&
attr_check a/c/f f &&
attr_check a/i a/i &&
attr_check subdir/a/i unspecified
)
ok 28 - bare repository: test info/attributes
expecting success of 0003.29 'binary macro expanded by -a':
echo "file binary" >.gitattributes &&
cat >expect <<-\EOF &&
file: binary: set
file: diff: unset
file: merge: unset
file: text: unset
EOF
git check-attr -a file >actual &&
test_cmp expect actual
ok 29 - binary macro expanded by -a
expecting success of 0003.30 'query binary macro directly':
echo "file binary" >.gitattributes &&
echo file: binary: set >expect &&
git check-attr binary file >actual &&
test_cmp expect actual
ok 30 - query binary macro directly
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 0003.31 'set up symlink tests':
echo "* test" >attr &&
rm -f .gitattributes
ok 31 - set up symlink tests
expecting success of 0003.32 'symlinks respected in core.attributesFile':
test_when_finished "rm symlink" &&
ln -s attr symlink &&
test_config core.attributesFile "$(pwd)/symlink" &&
attr_check file set
ok 32 - symlinks respected in core.attributesFile
expecting success of 0003.33 'symlinks respected in info/attributes':
test_when_finished "rm .git/info/attributes" &&
mkdir .git/info &&
ln -s ../../attr .git/info/attributes &&
attr_check file set
ok 33 - symlinks respected in info/attributes
expecting success of 0003.34 'symlinks not respected in-tree':
test_when_finished "rm -rf .gitattributes subdir" &&
ln -s attr .gitattributes &&
mkdir subdir &&
ln -s ../attr subdir/.gitattributes &&
attr_check_basic subdir/file unspecified &&
test_i18ngrep "unable to access.*gitattributes" err
warning: unable to access '.gitattributes': Too many levels of symbolic links
warning: unable to access 'subdir/.gitattributes': Too many levels of symbolic links
ok 34 - symlinks not respected in-tree
expecting success of 0003.35 'large attributes line ignored in tree':
test_when_finished "rm .gitattributes" &&
printf "path %02043d" 1 >.gitattributes &&
git check-attr --all path >actual 2>err &&
echo "warning: ignoring overly long attributes line 1" >expect &&
test_cmp expect err &&
test_must_be_empty actual
ok 35 - large attributes line ignored in tree
expecting success of 0003.36 'large attributes line ignores trailing content in tree':
test_when_finished "rm .gitattributes" &&
# older versions of Git broke lines at 2048 bytes; the 2045 bytes
# of 0-padding here is accounting for the three bytes of "a 1", which
# would knock "trailing" to the "next" line, where it would be
# erroneously parsed.
printf "a %02045dtrailing attribute\n" 1 >.gitattributes &&
git check-attr --all trailing >actual 2>err &&
echo "warning: ignoring overly long attributes line 1" >expect &&
test_cmp expect err &&
test_must_be_empty actual
ok 36 - large attributes line ignores trailing content in tree
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 37 # skip large attributes file ignored in tree (missing EXPENSIVE)
expecting success of 0003.38 'large attributes line ignored in index':
test_when_finished "git update-index --remove .gitattributes" &&
blob=$(printf "path %02043d" 1 | git hash-object -w --stdin) &&
git update-index --add --cacheinfo 100644,$blob,.gitattributes &&
git check-attr --cached --all path >actual 2>err &&
echo "warning: ignoring overly long attributes line 1" >expect &&
test_cmp expect err &&
test_must_be_empty actual
ok 38 - large attributes line ignored in index
expecting success of 0003.39 'large attributes line ignores trailing content in index':
test_when_finished "git update-index --remove .gitattributes" &&
blob=$(printf "a %02045dtrailing attribute\n" 1 | git hash-object -w --stdin) &&
git update-index --add --cacheinfo 100644,$blob,.gitattributes &&
git check-attr --cached --all trailing >actual 2>err &&
echo "warning: ignoring overly long attributes line 1" >expect &&
test_cmp expect err &&
test_must_be_empty actual
ok 39 - large attributes line ignores trailing content in index
ok 40 # skip large attributes file ignored in index (missing EXPENSIVE)
# passed all 40 test(s)
1..40
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0006-date.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0006-date/.git/
expecting success of 0006.1 'relative date (5 seconds ago)':
test-tool date relative 1251659995 >actual &&
test_cmp expect actual
ok 1 - relative date (5 seconds ago)
expecting success of 0006.2 'relative date (5 minutes ago)':
test-tool date relative 1251659700 >actual &&
test_cmp expect actual
ok 2 - relative date (5 minutes ago)
expecting success of 0006.3 'relative date (5 hours ago)':
test-tool date relative 1251642000 >actual &&
test_cmp expect actual
ok 3 - relative date (5 hours ago)
expecting success of 0006.4 'relative date (5 days ago)':
test-tool date relative 1251228000 >actual &&
test_cmp expect actual
ok 4 - relative date (5 days ago)
expecting success of 0006.5 'relative date (3 weeks ago)':
test-tool date relative 1249932000 >actual &&
test_cmp expect actual
ok 5 - relative date (3 weeks ago)
expecting success of 0006.6 'relative date (5 months ago)':
test-tool date relative 1238660000 >actual &&
test_cmp expect actual
ok 6 - relative date (5 months ago)
expecting success of 0006.7 'relative date (1 year, 2 months ago)':
test-tool date relative 1214160000 >actual &&
test_cmp expect actual
ok 7 - relative date (1 year, 2 months ago)
expecting success of 0006.8 'relative date (1 year, 9 months ago)':
test-tool date relative 1196472000 >actual &&
test_cmp expect actual
ok 8 - relative date (1 year, 9 months ago)
expecting success of 0006.9 'relative date (20 years ago)':
test-tool date relative 621660000 >actual &&
test_cmp expect actual
ok 9 - relative date (20 years ago)
expecting success of 0006.10 'relative date (12 months ago)':
test-tool date relative 1220210400 >actual &&
test_cmp expect actual
ok 10 - relative date (12 months ago)
expecting success of 0006.11 'relative date (2 years ago)':
test-tool date relative 1188674400 >actual &&
test_cmp expect actual
ok 11 - relative date (2 years ago)
expecting success of 0006.12 'show date (iso8601:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 12 - show date (iso8601:1466000000 +0200)
expecting success of 0006.13 'show date (iso8601-strict:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 13 - show date (iso8601-strict:1466000000 +0200)
expecting success of 0006.14 'show date (rfc2822:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 14 - show date (rfc2822:1466000000 +0200)
expecting success of 0006.15 'show date (short:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 15 - show date (short:1466000000 +0200)
expecting success of 0006.16 'show date (default:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 16 - show date (default:1466000000 +0200)
expecting success of 0006.17 'show date (raw:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 17 - show date (raw:1466000000 +0200)
expecting success of 0006.18 'show date (unix:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 18 - show date (unix:1466000000 +0200)
expecting success of 0006.19 'show date (iso-local:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 19 - show date (iso-local:1466000000 +0200)
expecting success of 0006.20 'show date (raw-local:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 20 - show date (raw-local:1466000000 +0200)
expecting success of 0006.21 'show date (unix-local:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 21 - show date (unix-local:1466000000 +0200)
expecting success of 0006.22 'show date (format:%z:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 22 - show date (format:%z:1466000000 +0200)
expecting success of 0006.23 'show date (format-local:%z:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 23 - show date (format-local:%z:1466000000 +0200)
expecting success of 0006.24 'show date (format:%Z:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 24 - show date (format:%Z:1466000000 +0200)
expecting success of 0006.25 'show date (format-local:%Z:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 25 - show date (format-local:%Z:1466000000 +0200)
expecting success of 0006.26 'show date (format:%%z:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 26 - show date (format:%%z:1466000000 +0200)
expecting success of 0006.27 'show date (format-local:%%z:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 27 - show date (format-local:%%z:1466000000 +0200)
expecting success of 0006.28 'show date (format:%Y-%m-%d %H:%M:%S:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 28 - show date (format:%Y-%m-%d %H:%M:%S:1466000000 +0200)
expecting success of 0006.29 'show date (format-local:%Y-%m-%d %H:%M:%S:1466000000 +0200)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 29 - show date (format-local:%Y-%m-%d %H:%M:%S:1466000000 +0200)
expecting success of 0006.30 'show date (format:%s:123456789 +1234)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 30 - show date (format:%s:123456789 +1234)
expecting success of 0006.31 'show date (format:%s:123456789 -1234)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 31 - show date (format:%s:123456789 -1234)
expecting success of 0006.32 'show date (format-local:%s:123456789 -1234)':
echo "$time -> $expect" >expect &&
TZ=${zone:-$TZ} test-tool date show:"$format" "$time" >actual &&
test_cmp expect actual
ok 32 - show date (format-local:%s:123456789 -1234)
checking prerequisite: TIME_IS_64BIT
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-TIME_IS_64BIT" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-TIME_IS_64BIT" &&test-tool date is64bit
)
prerequisite TIME_IS_64BIT ok
checking prerequisite: TIME_T_IS_64BIT
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-TIME_T_IS_64BIT" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-TIME_T_IS_64BIT" &&test-tool date time_t-is64bit
)
prerequisite TIME_T_IS_64BIT not satisfied
ok 33 # skip show date (iso:5758122296 -0400) (missing TIME_T_IS_64BIT of TIME_IS_64BIT,TIME_T_IS_64BIT)
ok 34 # skip show date (iso-local:5758122296 -0400) (missing TIME_T_IS_64BIT of TIME_IS_64BIT,TIME_T_IS_64BIT)
expecting success of 0006.35 'parse date (2008)':
TZ=UTC test-tool date parse '2008' >actual &&
test_cmp expect actual
ok 35 - parse date (2008)
expecting success of 0006.36 'parse date (2008-02)':
TZ=UTC test-tool date parse '2008-02' >actual &&
test_cmp expect actual
ok 36 - parse date (2008-02)
expecting success of 0006.37 'parse date (2008-02-14)':
TZ=UTC test-tool date parse '2008-02-14' >actual &&
test_cmp expect actual
ok 37 - parse date (2008-02-14)
expecting success of 0006.38 'parse date (2008-02-14 20:30:45)':
TZ=UTC test-tool date parse '2008-02-14 20:30:45' >actual &&
test_cmp expect actual
ok 38 - parse date (2008-02-14 20:30:45)
expecting success of 0006.39 'parse date (2008-02-14 20:30:45 -0500)':
TZ=UTC test-tool date parse '2008-02-14 20:30:45 -0500' >actual &&
test_cmp expect actual
ok 39 - parse date (2008-02-14 20:30:45 -0500)
expecting success of 0006.40 'parse date (2008.02.14 20:30:45 -0500)':
TZ=UTC test-tool date parse '2008.02.14 20:30:45 -0500' >actual &&
test_cmp expect actual
ok 40 - parse date (2008.02.14 20:30:45 -0500)
expecting success of 0006.41 'parse date (20080214T20:30:45)':
TZ=UTC test-tool date parse '20080214T20:30:45' >actual &&
test_cmp expect actual
ok 41 - parse date (20080214T20:30:45)
expecting success of 0006.42 'parse date (20080214T20:30)':
TZ=UTC test-tool date parse '20080214T20:30' >actual &&
test_cmp expect actual
ok 42 - parse date (20080214T20:30)
expecting success of 0006.43 'parse date (20080214T20)':
TZ=UTC test-tool date parse '20080214T20' >actual &&
test_cmp expect actual
ok 43 - parse date (20080214T20)
expecting success of 0006.44 'parse date (20080214T203045)':
TZ=UTC test-tool date parse '20080214T203045' >actual &&
test_cmp expect actual
ok 44 - parse date (20080214T203045)
expecting success of 0006.45 'parse date (20080214T2030)':
TZ=UTC test-tool date parse '20080214T2030' >actual &&
test_cmp expect actual
ok 45 - parse date (20080214T2030)
expecting success of 0006.46 'parse date (20080214T000000.20)':
TZ=UTC test-tool date parse '20080214T000000.20' >actual &&
test_cmp expect actual
ok 46 - parse date (20080214T000000.20)
expecting success of 0006.47 'parse date (20080214T00:00:00.20)':
TZ=UTC test-tool date parse '20080214T00:00:00.20' >actual &&
test_cmp expect actual
ok 47 - parse date (20080214T00:00:00.20)
expecting success of 0006.48 'parse date (20080214T203045-04:00)':
TZ=UTC test-tool date parse '20080214T203045-04:00' >actual &&
test_cmp expect actual
ok 48 - parse date (20080214T203045-04:00)
expecting success of 0006.49 'parse date (20080214T203045 -04:00)':
TZ=UTC test-tool date parse '20080214T203045 -04:00' >actual &&
test_cmp expect actual
ok 49 - parse date (20080214T203045 -04:00)
expecting success of 0006.50 'parse date (20080214T203045.019-04:00)':
TZ=UTC test-tool date parse '20080214T203045.019-04:00' >actual &&
test_cmp expect actual
ok 50 - parse date (20080214T203045.019-04:00)
expecting success of 0006.51 'parse date (2008-02-14 20:30:45.019-04:00)':
TZ=UTC test-tool date parse '2008-02-14 20:30:45.019-04:00' >actual &&
test_cmp expect actual
ok 51 - parse date (2008-02-14 20:30:45.019-04:00)
expecting success of 0006.52 'parse date (2008-02-14 20:30:45 -0015)':
TZ=UTC test-tool date parse '2008-02-14 20:30:45 -0015' >actual &&
test_cmp expect actual
ok 52 - parse date (2008-02-14 20:30:45 -0015)
expecting success of 0006.53 'parse date (2008-02-14 20:30:45 -5)':
TZ=UTC test-tool date parse '2008-02-14 20:30:45 -5' >actual &&
test_cmp expect actual
ok 53 - parse date (2008-02-14 20:30:45 -5)
expecting success of 0006.54 'parse date (2008-02-14 20:30:45 -5:)':
TZ=UTC test-tool date parse '2008-02-14 20:30:45 -5:' >actual &&
test_cmp expect actual
ok 54 - parse date (2008-02-14 20:30:45 -5:)
expecting success of 0006.55 'parse date (2008-02-14 20:30:45 -05)':
TZ=UTC test-tool date parse '2008-02-14 20:30:45 -05' >actual &&
test_cmp expect actual
ok 55 - parse date (2008-02-14 20:30:45 -05)
expecting success of 0006.56 'parse date (2008-02-14 20:30:45 -:30)':
TZ=UTC test-tool date parse '2008-02-14 20:30:45 -:30' >actual &&
test_cmp expect actual
ok 56 - parse date (2008-02-14 20:30:45 -:30)
expecting success of 0006.57 'parse date (2008-02-14 20:30:45 -05:00)':
TZ=UTC test-tool date parse '2008-02-14 20:30:45 -05:00' >actual &&
test_cmp expect actual
ok 57 - parse date (2008-02-14 20:30:45 -05:00)
expecting success of 0006.58 'parse date (2008-02-14 20:30:45 TZ=EST5)':
TZ=EST5 test-tool date parse '2008-02-14 20:30:45' >actual &&
test_cmp expect actual
ok 58 - parse date (2008-02-14 20:30:45 TZ=EST5)
expecting success of 0006.59 'parse date (Thu, 7 Apr 2005 15:14:13 -0700)':
TZ=UTC test-tool date parse 'Thu, 7 Apr 2005 15:14:13 -0700' >actual &&
test_cmp expect actual
ok 59 - parse date (Thu, 7 Apr 2005 15:14:13 -0700)
expecting success of 0006.60 'parse approxidate (now)':
test-tool date approxidate 'now' >actual &&
test_cmp expect actual
ok 60 - parse approxidate (now)
expecting success of 0006.61 'parse approxidate (5 seconds ago)':
test-tool date approxidate '5 seconds ago' >actual &&
test_cmp expect actual
ok 61 - parse approxidate (5 seconds ago)
expecting success of 0006.62 'parse approxidate (5.seconds.ago)':
test-tool date approxidate '5.seconds.ago' >actual &&
test_cmp expect actual
ok 62 - parse approxidate (5.seconds.ago)
expecting success of 0006.63 'parse approxidate (10.minutes.ago)':
test-tool date approxidate '10.minutes.ago' >actual &&
test_cmp expect actual
ok 63 - parse approxidate (10.minutes.ago)
expecting success of 0006.64 'parse approxidate (yesterday)':
test-tool date approxidate 'yesterday' >actual &&
test_cmp expect actual
ok 64 - parse approxidate (yesterday)
expecting success of 0006.65 'parse approxidate (3.days.ago)':
test-tool date approxidate '3.days.ago' >actual &&
test_cmp expect actual
ok 65 - parse approxidate (3.days.ago)
expecting success of 0006.66 'parse approxidate (12:34:56.3.days.ago)':
test-tool date approxidate '12:34:56.3.days.ago' >actual &&
test_cmp expect actual
ok 66 - parse approxidate (12:34:56.3.days.ago)
expecting success of 0006.67 'parse approxidate (3.weeks.ago)':
test-tool date approxidate '3.weeks.ago' >actual &&
test_cmp expect actual
ok 67 - parse approxidate (3.weeks.ago)
expecting success of 0006.68 'parse approxidate (3.months.ago)':
test-tool date approxidate '3.months.ago' >actual &&
test_cmp expect actual
ok 68 - parse approxidate (3.months.ago)
expecting success of 0006.69 'parse approxidate (2.years.3.months.ago)':
test-tool date approxidate '2.years.3.months.ago' >actual &&
test_cmp expect actual
ok 69 - parse approxidate (2.years.3.months.ago)
expecting success of 0006.70 'parse approxidate (6am yesterday)':
test-tool date approxidate '6am yesterday' >actual &&
test_cmp expect actual
ok 70 - parse approxidate (6am yesterday)
expecting success of 0006.71 'parse approxidate (6pm yesterday)':
test-tool date approxidate '6pm yesterday' >actual &&
test_cmp expect actual
ok 71 - parse approxidate (6pm yesterday)
expecting success of 0006.72 'parse approxidate (3:00)':
test-tool date approxidate '3:00' >actual &&
test_cmp expect actual
ok 72 - parse approxidate (3:00)
expecting success of 0006.73 'parse approxidate (15:00)':
test-tool date approxidate '15:00' >actual &&
test_cmp expect actual
ok 73 - parse approxidate (15:00)
expecting success of 0006.74 'parse approxidate (noon today)':
test-tool date approxidate 'noon today' >actual &&
test_cmp expect actual
ok 74 - parse approxidate (noon today)
expecting success of 0006.75 'parse approxidate (noon yesterday)':
test-tool date approxidate 'noon yesterday' >actual &&
test_cmp expect actual
ok 75 - parse approxidate (noon yesterday)
expecting success of 0006.76 'parse approxidate (January 5th noon pm)':
test-tool date approxidate 'January 5th noon pm' >actual &&
test_cmp expect actual
ok 76 - parse approxidate (January 5th noon pm)
expecting success of 0006.77 'parse approxidate (10am noon)':
test-tool date approxidate '10am noon' >actual &&
test_cmp expect actual
ok 77 - parse approxidate (10am noon)
expecting success of 0006.78 'parse approxidate (last tuesday)':
test-tool date approxidate 'last tuesday' >actual &&
test_cmp expect actual
ok 78 - parse approxidate (last tuesday)
expecting success of 0006.79 'parse approxidate (July 5th)':
test-tool date approxidate 'July 5th' >actual &&
test_cmp expect actual
ok 79 - parse approxidate (July 5th)
expecting success of 0006.80 'parse approxidate (06/05/2009)':
test-tool date approxidate '06/05/2009' >actual &&
test_cmp expect actual
ok 80 - parse approxidate (06/05/2009)
expecting success of 0006.81 'parse approxidate (06.05.2009)':
test-tool date approxidate '06.05.2009' >actual &&
test_cmp expect actual
ok 81 - parse approxidate (06.05.2009)
expecting success of 0006.82 'parse approxidate (Jun 6, 5AM)':
test-tool date approxidate 'Jun 6, 5AM' >actual &&
test_cmp expect actual
ok 82 - parse approxidate (Jun 6, 5AM)
expecting success of 0006.83 'parse approxidate (5AM Jun 6)':
test-tool date approxidate '5AM Jun 6' >actual &&
test_cmp expect actual
ok 83 - parse approxidate (5AM Jun 6)
expecting success of 0006.84 'parse approxidate (6AM, June 7, 2009)':
test-tool date approxidate '6AM, June 7, 2009' >actual &&
test_cmp expect actual
ok 84 - parse approxidate (6AM, June 7, 2009)
expecting success of 0006.85 'parse approxidate (2008-12-01)':
test-tool date approxidate '2008-12-01' >actual &&
test_cmp expect actual
ok 85 - parse approxidate (2008-12-01)
expecting success of 0006.86 'parse approxidate (2009-12-01)':
test-tool date approxidate '2009-12-01' >actual &&
test_cmp expect actual
ok 86 - parse approxidate (2009-12-01)
expecting success of 0006.87 'human date 1251642000':
test-tool date human $t >actual &&
test_cmp expect actual
ok 87 - human date 1251642000
expecting success of 0006.88 'human date 1251228000':
test-tool date human $t >actual &&
test_cmp expect actual
ok 88 - human date 1251228000
expecting success of 0006.89 'human date 1249932000':
test-tool date human $t >actual &&
test_cmp expect actual
ok 89 - human date 1249932000
expecting success of 0006.90 'human date 1238660000':
test-tool date human $t >actual &&
test_cmp expect actual
ok 90 - human date 1238660000
expecting success of 0006.91 'human date 1220210400':
test-tool date human $t >actual &&
test_cmp expect actual
ok 91 - human date 1220210400
expecting success of 0006.92 'human date 1214160000':
test-tool date human $t >actual &&
test_cmp expect actual
ok 92 - human date 1214160000
expecting success of 0006.93 'human date 1196472000':
test-tool date human $t >actual &&
test_cmp expect actual
ok 93 - human date 1196472000
expecting success of 0006.94 'human date 621660000':
test-tool date human $t >actual &&
test_cmp expect actual
ok 94 - human date 621660000
# passed all 94 test(s)
1..94
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0007-git-var.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
)
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: unable to auto-detect email address (got 'buildd@mb-lxc-02.(none)')
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: unable to auto-detect email address (got 'buildd@mb-lxc-02.(none)')
ok 3 - requested identities are strict
expecting success of 0007.4 'get GIT_DEFAULT_BRANCH without configuration':
(
sane_unset GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME &&
git init defbranch &&
git -C defbranch symbolic-ref --short HEAD >expect &&
git var GIT_DEFAULT_BRANCH >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 <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0007-git-var/defbranch/.git/
ok 4 - get GIT_DEFAULT_BRANCH without configuration
expecting success of 0007.5 'get GIT_DEFAULT_BRANCH with configuration':
test_config init.defaultbranch foo &&
(
sane_unset GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME &&
echo foo >expect &&
git var GIT_DEFAULT_BRANCH >actual &&
test_cmp expect actual
)
ok 5 - get GIT_DEFAULT_BRANCH with configuration
expecting success of 0007.6 'get GIT_EDITOR without configuration':
(
sane_unset_all_editors &&
test_expect_code 1 git var GIT_EDITOR >out &&
test_must_be_empty out
)
ok 6 - get GIT_EDITOR without configuration
expecting success of 0007.7 'get GIT_EDITOR with configuration':
test_config core.editor foo &&
(
sane_unset_all_editors &&
echo foo >expect &&
git var GIT_EDITOR >actual &&
test_cmp expect actual
)
ok 7 - get GIT_EDITOR with configuration
expecting success of 0007.8 'get GIT_EDITOR with environment variable GIT_EDITOR':
(
sane_unset_all_editors &&
echo bar >expect &&
GIT_EDITOR=bar git var GIT_EDITOR >actual &&
test_cmp expect actual
)
ok 8 - get GIT_EDITOR with environment variable GIT_EDITOR
expecting success of 0007.9 'get GIT_EDITOR with environment variable EDITOR':
(
sane_unset_all_editors &&
echo bar >expect &&
EDITOR=bar git var GIT_EDITOR >actual &&
test_cmp expect actual
)
ok 9 - get GIT_EDITOR with environment variable EDITOR
expecting success of 0007.10 'get GIT_EDITOR with configuration and environment variable GIT_EDITOR':
test_config core.editor foo &&
(
sane_unset_all_editors &&
echo bar >expect &&
GIT_EDITOR=bar git var GIT_EDITOR >actual &&
test_cmp expect actual
)
ok 10 - get GIT_EDITOR with configuration and environment variable GIT_EDITOR
expecting success of 0007.11 'get GIT_EDITOR with configuration and environment variable EDITOR':
test_config core.editor foo &&
(
sane_unset_all_editors &&
echo foo >expect &&
EDITOR=bar git var GIT_EDITOR >actual &&
test_cmp expect actual
)
ok 11 - get GIT_EDITOR with configuration and environment variable EDITOR
expecting success of 0007.12 'get GIT_SEQUENCE_EDITOR without configuration':
(
sane_unset GIT_SEQUENCE_EDITOR &&
git var GIT_EDITOR >expect &&
git var GIT_SEQUENCE_EDITOR >actual &&
test_cmp expect actual
)
ok 12 - get GIT_SEQUENCE_EDITOR without configuration
expecting success of 0007.13 'get GIT_SEQUENCE_EDITOR with configuration':
test_config sequence.editor foo &&
(
sane_unset GIT_SEQUENCE_EDITOR &&
echo foo >expect &&
git var GIT_SEQUENCE_EDITOR >actual &&
test_cmp expect actual
)
ok 13 - get GIT_SEQUENCE_EDITOR with configuration
expecting success of 0007.14 'get GIT_SEQUENCE_EDITOR with environment variable':
(
sane_unset GIT_SEQUENCE_EDITOR &&
echo bar >expect &&
GIT_SEQUENCE_EDITOR=bar git var GIT_SEQUENCE_EDITOR >actual &&
test_cmp expect actual
)
ok 14 - get GIT_SEQUENCE_EDITOR with environment variable
expecting success of 0007.15 'get GIT_SEQUENCE_EDITOR with configuration and environment variable':
test_config sequence.editor foo &&
(
sane_unset GIT_SEQUENCE_EDITOR &&
echo bar >expect &&
GIT_SEQUENCE_EDITOR=bar git var GIT_SEQUENCE_EDITOR >actual &&
test_cmp expect actual
)
ok 15 - get GIT_SEQUENCE_EDITOR with configuration and environment variable
expecting success of 0007.16 '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 >actual.author &&
test_cmp expect actual.author
ok 16 - git var -l lists variables
expecting success of 0007.17 'git var -l lists config':
git var -l >actual &&
echo false >expect &&
sed -n s/core\\.bare=//p <actual >actual.bare &&
test_cmp expect actual.bare
ok 17 - git var -l lists config
expecting success of 0007.18 'listing and asking for variables are exclusive':
test_must_fail git var -l GIT_COMMITTER_IDENT
usage: git var (-l | <variable>)
ok 18 - listing and asking for variables are exclusive
# passed all 18 test(s)
1..18
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0001-init.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/.git/
expecting success of 0001.1 'plain':
git init plain &&
check_config plain/.git false unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/plain/.git/
ok 1 - plain
expecting success of 0001.2 'plain nested in bare':
(
git init --bare bare-ancestor.git &&
cd bare-ancestor.git &&
mkdir plain-nested &&
cd plain-nested &&
git init
) &&
check_config bare-ancestor.git/plain-nested/.git false unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/bare-ancestor.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/bare-ancestor.git/plain-nested/.git/
ok 2 - plain nested in bare
expecting success of 0001.3 'plain through aliased command, outside any git repo':
(
HOME=$(pwd)/alias-config &&
export HOME &&
mkdir alias-config &&
echo "[alias] aliasedinit = init" >alias-config/.gitconfig &&
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
mkdir plain-aliased &&
cd plain-aliased &&
git aliasedinit
) &&
check_config plain-aliased/.git false unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/plain-aliased/.git/
ok 3 - plain through aliased command, outside any git repo
expecting success of 0001.4 'plain nested through aliased command':
(
git init plain-ancestor-aliased &&
cd plain-ancestor-aliased &&
echo "[alias] aliasedinit = init" >>.git/config &&
mkdir plain-nested &&
cd plain-nested &&
git aliasedinit
) &&
check_config plain-ancestor-aliased/plain-nested/.git false unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/plain-ancestor-aliased/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/plain-ancestor-aliased/plain-nested/.git/
ok 4 - plain nested through aliased command
expecting success of 0001.5 'plain nested in bare through aliased command':
(
git init --bare bare-ancestor-aliased.git &&
cd bare-ancestor-aliased.git &&
echo "[alias] aliasedinit = init" >>config &&
mkdir plain-nested &&
cd plain-nested &&
git aliasedinit
) &&
check_config bare-ancestor-aliased.git/plain-nested/.git false unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/bare-ancestor-aliased.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/bare-ancestor-aliased.git/plain-nested/.git/
ok 5 - plain nested in bare through aliased command
expecting success of 0001.6 'No extra GIT_* on alias scripts':
write_script script <<-\EOF &&
env |
sed -n \
-e "/^GIT_PREFIX=/d" \
-e "/^GIT_TEXTDOMAINDIR=/d" \
-e "/^GIT_TRACE2_PARENT/d" \
-e "/^GIT_/s/=.*//p" |
sort
EOF
./script >expected &&
git config alias.script \!./script &&
( mkdir sub && cd sub && git script >../actual ) &&
test_cmp expected actual
ok 6 - No extra GIT_* on alias scripts
expecting success of 0001.7 'plain with GIT_WORK_TREE':
mkdir plain-wt &&
test_must_fail env GIT_WORK_TREE="$(pwd)/plain-wt" git init plain-wt
fatal: GIT_WORK_TREE (or --work-tree=<directory>) not allowed without specifying GIT_DIR (or --git-dir=<directory>)
ok 7 - plain with GIT_WORK_TREE
expecting success of 0001.8 'plain bare':
git --bare init plain-bare-1 &&
check_config plain-bare-1 true unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/plain-bare-1/
ok 8 - plain bare
expecting success of 0001.9 'plain bare with GIT_WORK_TREE':
mkdir plain-bare-2 &&
test_must_fail \
env GIT_WORK_TREE="$(pwd)/plain-bare-2" \
git --bare init plain-bare-2
fatal: GIT_WORK_TREE (or --work-tree=<directory>) not allowed without specifying GIT_DIR (or --git-dir=<directory>)
ok 9 - plain bare with GIT_WORK_TREE
expecting success of 0001.10 'GIT_DIR bare':
mkdir git-dir-bare.git &&
GIT_DIR=git-dir-bare.git git init &&
check_config git-dir-bare.git true unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/git-dir-bare.git/
ok 10 - GIT_DIR bare
expecting success of 0001.11 'init --bare':
git init --bare init-bare.git &&
check_config init-bare.git true unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/init-bare.git/
ok 11 - init --bare
expecting success of 0001.12 'GIT_DIR non-bare':
(
mkdir non-bare &&
cd non-bare &&
GIT_DIR=.git git init
) &&
check_config non-bare/.git false unset
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/non-bare/.git/
ok 12 - GIT_DIR non-bare
expecting success of 0001.13 'GIT_DIR & GIT_WORK_TREE (1)':
(
mkdir git-dir-wt-1.git &&
GIT_WORK_TREE=$(pwd) GIT_DIR=git-dir-wt-1.git git init
) &&
check_config git-dir-wt-1.git false "$(pwd)"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/git-dir-wt-1.git/
ok 13 - GIT_DIR & GIT_WORK_TREE (1)
expecting success of 0001.14 'GIT_DIR & GIT_WORK_TREE (2)':
mkdir git-dir-wt-2.git &&
test_must_fail env \
GIT_WORK_TREE="$(pwd)" \
GIT_DIR=git-dir-wt-2.git \
git --bare init
fatal: GIT_WORK_TREE (or --work-tree=<directory>) not allowed without specifying GIT_DIR (or --git-dir=<directory>)
ok 14 - GIT_DIR & GIT_WORK_TREE (2)
expecting success of 0001.15 'reinit':
(
mkdir again &&
cd again &&
git -c init.defaultBranch=initial init >out1 2>err1 &&
git init >out2 2>err2
) &&
test_i18ngrep "Initialized empty" again/out1 &&
test_i18ngrep "Reinitialized existing" again/out2 &&
test_must_be_empty again/err1 &&
test_must_be_empty again/err2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/again/.git/
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/again/.git/
ok 15 - reinit
expecting success of 0001.16 'init with --template':
mkdir template-source &&
echo content >template-source/file &&
git init --template=template-source template-custom &&
test_cmp template-source/file template-custom/.git/file
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/template-custom/.git/
ok 16 - init with --template
expecting success of 0001.17 'init with --template (blank)':
git init template-plain &&
test_path_is_file template-plain/.git/info/exclude &&
git init --template= template-blank &&
test_path_is_missing template-blank/.git/info/exclude
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/template-plain/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/template-blank/.git/
ok 17 - init with --template (blank)
expecting success of 0001.18 'init with init.templatedir set':
mkdir templatedir-source &&
echo Content >templatedir-source/file &&
test_config_global init.templatedir "${HOME}/templatedir-source" &&
init_no_templatedir_env templatedir-set &&
test_cmp templatedir-source/file templatedir-set/.git/file
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/templatedir-set/.git/
ok 18 - init with init.templatedir set
expecting success of 0001.19 'init with init.templatedir using ~ expansion':
mkdir -p templatedir-source &&
echo Content >templatedir-source/file &&
test_config_global init.templatedir "~/templatedir-source" &&
init_no_templatedir_env templatedir-expansion &&
test_cmp templatedir-source/file templatedir-expansion/.git/file
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/templatedir-expansion/.git/
ok 19 - init with init.templatedir using ~ expansion
expecting success of 0001.20 'init --bare/--shared overrides system/global config':
test_config_global core.bare false &&
test_config_global core.sharedRepository 0640 &&
git init --bare --shared=0666 init-bare-shared-override &&
check_config init-bare-shared-override true unset &&
test x0666 = \
x$(git config -f init-bare-shared-override/config core.sharedRepository)
Initialized empty shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/init-bare-shared-override/
ok 20 - init --bare/--shared overrides system/global config
expecting success of 0001.21 'init honors global core.sharedRepository':
test_config_global core.sharedRepository 0666 &&
git init shared-honor-global &&
test x0666 = \
x$(git config -f shared-honor-global/.git/config core.sharedRepository)
Initialized empty shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/shared-honor-global/.git/
ok 21 - init honors global core.sharedRepository
expecting success of 0001.22 'init allows insanely long --template':
git init --template=$(printf "x%09999dx" 1) test
warning: templates not found in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/test/.git/
ok 22 - init allows insanely long --template
expecting success of 0001.23 'init creates a new directory':
rm -fr newdir &&
git init newdir &&
test_path_is_dir newdir/.git/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/.git/
ok 23 - init creates a new directory
expecting success of 0001.24 'init creates a new bare directory':
rm -fr newdir &&
git init --bare newdir &&
test_path_is_dir newdir/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/
ok 24 - init creates a new bare directory
expecting success of 0001.25 'init recreates a directory':
rm -fr newdir &&
mkdir newdir &&
git init newdir &&
test_path_is_dir newdir/.git/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/.git/
ok 25 - init recreates a directory
expecting success of 0001.26 'init recreates a new bare directory':
rm -fr newdir &&
mkdir newdir &&
git init --bare newdir &&
test_path_is_dir newdir/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/
ok 26 - init recreates a new bare directory
expecting success of 0001.27 'init creates a new deep directory':
rm -fr newdir &&
git init newdir/a/b/c &&
test_path_is_dir newdir/a/b/c/.git/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/a/b/c/.git/
ok 27 - init creates a new deep directory
expecting success of 0001.28 'init creates a new deep directory (umask vs. shared)':
rm -fr newdir &&
(
# Leading directories should honor umask while
# the repository itself should follow "shared"
mkdir newdir &&
# Remove a default ACL if possible.
(setfacl -k newdir 2>/dev/null || true) &&
umask 002 &&
git init --bare --shared=0660 newdir/a/b/c &&
test_path_is_dir newdir/a/b/c/refs &&
ls -ld newdir/a newdir/a/b > lsab.out &&
! grep -v "^drwxrw[sx]r-x" lsab.out &&
ls -ld newdir/a/b/c > lsc.out &&
! grep -v "^drwxrw[sx]---" lsc.out
)
Initialized empty shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/a/b/c/
ok 28 - init creates a new deep directory (umask vs. shared)
expecting success of 0001.29 'init notices EEXIST (1)':
rm -fr newdir &&
>newdir &&
test_must_fail git init newdir &&
test_path_is_file newdir
fatal: cannot mkdir newdir: File exists
ok 29 - init notices EEXIST (1)
expecting success of 0001.30 'init notices EEXIST (2)':
rm -fr newdir &&
mkdir newdir &&
>newdir/a &&
test_must_fail git init newdir/a/b &&
test_path_is_file newdir/a
fatal: cannot mkdir newdir/a/b: File exists
ok 30 - init notices EEXIST (2)
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 0001.31 'init notices EPERM':
test_when_finished "chmod +w newdir" &&
rm -fr newdir &&
mkdir newdir &&
chmod -w newdir &&
test_must_fail git init newdir/a/b
fatal: cannot mkdir newdir/a/b: Permission denied
ok 31 - init notices EPERM
expecting success of 0001.32 'init creates a new bare directory with global --bare':
rm -rf newdir &&
git --bare init newdir &&
test_path_is_dir newdir/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/
ok 32 - init creates a new bare directory with global --bare
expecting success of 0001.33 'init prefers command line to GIT_DIR':
rm -rf newdir &&
mkdir otherdir &&
GIT_DIR=otherdir git --bare init newdir &&
test_path_is_dir newdir/refs &&
test_path_is_missing otherdir/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/
ok 33 - init prefers command line to GIT_DIR
expecting success of 0001.34 'init with separate gitdir':
rm -rf newdir &&
git init --separate-git-dir realgitdir newdir &&
newdir_git="$(cat newdir/.git)" &&
test_cmp_fspath "$(pwd)/realgitdir" "${newdir_git#gitdir: }" &&
test_path_is_dir realgitdir/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/realgitdir/
ok 34 - init with separate gitdir
expecting success of 0001.35 'explicit bare & --separate-git-dir incompatible':
test_must_fail git init --bare --separate-git-dir goop.git bare.git 2>err &&
test_i18ngrep "cannot be used together" err
fatal: options '--separate-git-dir' and '--bare' cannot be used together
ok 35 - explicit bare & --separate-git-dir incompatible
expecting success of 0001.36 'implicit bare & --separate-git-dir incompatible':
test_when_finished "rm -rf bare.git" &&
mkdir -p bare.git &&
test_must_fail env GIT_DIR=. \
git -C bare.git init --separate-git-dir goop.git 2>err &&
test_i18ngrep "incompatible" err
fatal: --separate-git-dir incompatible with bare repository
ok 36 - implicit bare & --separate-git-dir incompatible
expecting success of 0001.37 'bare & --separate-git-dir incompatible within worktree':
test_when_finished "rm -rf bare.git linkwt seprepo" &&
test_commit gumby &&
git clone --bare . bare.git &&
git -C bare.git worktree add --detach ../linkwt &&
test_must_fail git -C linkwt init --separate-git-dir seprepo 2>err &&
test_i18ngrep "incompatible" err
[master (root-commit) 9bca56c] gumby
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 gumby.t
Cloning into bare repository 'bare.git'...
done.
Preparing worktree (detached HEAD 9bca56c)
HEAD is now at 9bca56c gumby
fatal: --separate-git-dir incompatible with bare repository
ok 37 - bare & --separate-git-dir incompatible within worktree
expecting success of 0001.38 'init in long base path':
check_long_base_path
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/newdir/.git/
ok 38 - init in long base path
checking prerequisite: GETCWD_IGNORES_PERMS
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-GETCWD_IGNORES_PERMS" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-GETCWD_IGNORES_PERMS" &&
base=GETCWD_TEST_BASE_DIR &&
mkdir -p $base/dir &&
chmod 100 $base ||
BUG "cannot prepare $base"
(
cd $base/dir &&
test-tool getcwd
)
status=$?
chmod 700 $base &&
rm -rf $base ||
BUG "cannot clean $base"
return $status
)
/<<PKGBUILDDIR>>/t/trash directory.t0001-init/prereq-test-dir-GETCWD_IGNORES_PERMS/GETCWD_TEST_BASE_DIR/dir
prerequisite GETCWD_IGNORES_PERMS ok
expecting success of 0001.39 'init in long restricted base path':
check_long_base_path 0111
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/123456789abcdef/newdir/.git/
ok 39 - init in long restricted base path
expecting success of 0001.40 're-init on .git file':
( cd newdir && git init )
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/realgitdir/
ok 40 - re-init on .git file
expecting success of 0001.41 're-init to update git link':
git -C newdir init --separate-git-dir ../surrealgitdir &&
newdir_git="$(cat newdir/.git)" &&
test_cmp_fspath "$(pwd)/surrealgitdir" "${newdir_git#gitdir: }" &&
test_path_is_dir surrealgitdir/refs &&
test_path_is_missing realgitdir/refs
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/surrealgitdir/
ok 41 - re-init to update git link
expecting success of 0001.42 're-init to move gitdir':
rm -rf newdir realgitdir surrealgitdir &&
git init newdir &&
git -C newdir init --separate-git-dir ../realgitdir &&
newdir_git="$(cat newdir/.git)" &&
test_cmp_fspath "$(pwd)/realgitdir" "${newdir_git#gitdir: }" &&
test_path_is_dir realgitdir/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/.git/
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/realgitdir/
ok 42 - re-init to move gitdir
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 0001.43 're-init to move gitdir symlink':
rm -rf newdir realgitdir &&
git init newdir &&
(
cd newdir &&
mv .git here &&
ln -s here .git &&
git init --separate-git-dir ../realgitdir
) &&
echo "gitdir: $(pwd)/realgitdir" >expected &&
test_cmp expected newdir/.git &&
test_cmp expected newdir/here &&
test_path_is_dir realgitdir/refs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/.git/
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/realgitdir/
ok 43 - re-init to move gitdir symlink
expecting success of 0001.44 're-init to move gitdir with linked worktrees':
sep_git_dir_worktree mainwt
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/mainwt/.git/
[master (root-commit) ad170d6] gumby
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 gumby.t
Preparing worktree (detached HEAD ad170d6)
HEAD is now at ad170d6 gumby
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/seprepo/
ok 44 - re-init to move gitdir with linked worktrees
expecting success of 0001.45 're-init to move gitdir within linked worktree':
sep_git_dir_worktree linkwt
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/mainwt/.git/
[master (root-commit) ee407db] gumby
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 gumby.t
Preparing worktree (detached HEAD ee407db)
HEAD is now at ee407db gumby
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/seprepo/
ok 45 - re-init to move gitdir within linked worktree
ok 46 # skip .git hidden (missing MINGW)
ok 47 # skip bare git dir not hidden (missing MINGW)
expecting success of 0001.48 'remote init from does not use config from cwd':
rm -rf newdir &&
test_config core.logallrefupdates true &&
git init newdir &&
echo true >expect &&
git -C newdir config --bool core.logallrefupdates >actual &&
test_cmp expect actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/newdir/.git/
ok 48 - remote init from does not use config from cwd
expecting success of 0001.49 're-init from a linked worktree':
git init main-worktree &&
(
cd main-worktree &&
test_commit first &&
git worktree add ../linked-worktree &&
mv .git/info/exclude expected-exclude &&
cp .git/config expected-config &&
find .git/worktrees -print | sort >expected &&
git -C ../linked-worktree init &&
test_cmp expected-exclude .git/info/exclude &&
test_cmp expected-config .git/config &&
find .git/worktrees -print | sort >actual &&
test_cmp expected actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/main-worktree/.git/
[master (root-commit) 599f738] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first.t
Preparing worktree (new branch 'linked-worktree')
HEAD is now at 599f738 first
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/main-worktree/.git/worktrees/linked-worktree/
ok 49 - re-init from a linked worktree
expecting success of 0001.50 'init honors GIT_DEFAULT_HASH':
GIT_DEFAULT_HASH=sha1 git init sha1 &&
git -C sha1 rev-parse --show-object-format >actual &&
echo sha1 >expected &&
test_cmp expected actual &&
GIT_DEFAULT_HASH=sha256 git init sha256 &&
git -C sha256 rev-parse --show-object-format >actual &&
echo sha256 >expected &&
test_cmp expected actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/sha1/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/sha256/.git/
ok 50 - init honors GIT_DEFAULT_HASH
expecting success of 0001.51 'init honors --object-format':
git init --object-format=sha1 explicit-sha1 &&
git -C explicit-sha1 rev-parse --show-object-format >actual &&
echo sha1 >expected &&
test_cmp expected actual &&
git init --object-format=sha256 explicit-sha256 &&
git -C explicit-sha256 rev-parse --show-object-format >actual &&
echo sha256 >expected &&
test_cmp expected actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/explicit-sha1/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/explicit-sha256/.git/
ok 51 - init honors --object-format
expecting success of 0001.52 'extensions.objectFormat is not allowed with repo version 0':
git init --object-format=sha256 explicit-v0 &&
git -C explicit-v0 config core.repositoryformatversion 0 &&
test_must_fail git -C explicit-v0 rev-parse --show-object-format
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/explicit-v0/.git/
fatal: repo version is 0, but v1-only extension found:
objectformat
ok 52 - extensions.objectFormat is not allowed with repo version 0
expecting success of 0001.53 'init rejects attempts to initialize with different hash':
test_must_fail git -C sha1 init --object-format=sha256 &&
test_must_fail git -C sha256 init --object-format=sha1
fatal: attempt to reinitialize repository with different hash
fatal: attempt to reinitialize repository with different hash
ok 53 - init rejects attempts to initialize with different hash
ok 54 # skip core.hidedotfiles = false (missing MINGW)
ok 55 # skip redirect std handles (missing MINGW)
expecting success of 0001.56 '--initial-branch':
git init --initial-branch=hello initial-branch-option &&
git -C initial-branch-option symbolic-ref HEAD >actual &&
echo refs/heads/hello >expect &&
test_cmp expect actual &&
: re-initializing should not change the branch name &&
git init --initial-branch=ignore initial-branch-option 2>err &&
test_i18ngrep "ignored --initial-branch" err &&
git -C initial-branch-option symbolic-ref HEAD >actual &&
grep hello actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/initial-branch-option/.git/
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/initial-branch-option/.git/
warning: re-init: ignored --initial-branch=ignore
refs/heads/hello
ok 56 - --initial-branch
expecting success of 0001.57 'overridden default initial branch name (config)':
test_config_global init.defaultBranch nmb &&
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME= git init initial-branch-config &&
git -C initial-branch-config symbolic-ref HEAD >actual &&
grep nmb actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/initial-branch-config/.git/
refs/heads/nmb
ok 57 - overridden default initial branch name (config)
expecting success of 0001.58 'advice on unconfigured init.defaultBranch':
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME= git -c color.advice=always \
init unconfigured-default-branch-name 2>err &&
test_decode_color <err >decoded &&
test_i18ngrep "<YELLOW>hint: " decoded
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/unconfigured-default-branch-name/.git/
<YELLOW>hint: Using 'master' as the name for the initial branch. This default branch name<RESET>
<YELLOW>hint: is subject to change. To configure the initial branch name to use in all<RESET>
<YELLOW>hint: of your new repositories, which will suppress this warning, call:<RESET>
<YELLOW>hint: <RESET>
<YELLOW>hint: git config --global init.defaultBranch <name><RESET>
<YELLOW>hint: <RESET>
<YELLOW>hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and<RESET>
<YELLOW>hint: 'development'. The just-created branch can be renamed via this command:<RESET>
<YELLOW>hint: <RESET>
<YELLOW>hint: git branch -m <name><RESET>
ok 58 - advice on unconfigured init.defaultBranch
expecting success of 0001.59 'overridden default main branch name (env)':
test_config_global init.defaultBranch nmb &&
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=env git init main-branch-env &&
git -C main-branch-env symbolic-ref HEAD >actual &&
grep env actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/main-branch-env/.git/
refs/heads/env
ok 59 - overridden default main branch name (env)
expecting success of 0001.60 'invalid default branch name':
test_must_fail env GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME="with space" \
git init initial-branch-invalid 2>err &&
test_i18ngrep "invalid branch name" err
fatal: invalid branch name: init.defaultBranch = with space
ok 60 - invalid default branch name
expecting success of 0001.61 'branch -m with the initial branch':
git init rename-initial &&
git -C rename-initial branch -m renamed &&
test renamed = $(git -C rename-initial symbolic-ref --short HEAD) &&
git -C rename-initial branch -m renamed again &&
test again = $(git -C rename-initial symbolic-ref --short HEAD)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0001-init/rename-initial/.git/
ok 61 - branch -m with the initial branch
# passed all 61 test(s)
1..61
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0009-prio-queue.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0011-hashmap.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0011-hashmap/.git/
expecting success of 0011.1 'put':
test_hashmap "put key1 value1
put key2 value2
put fooBarFrotz value3
put foobarfrotz value4
size" "NULL
NULL
NULL
NULL
64 4"
ok 1 - put
expecting success of 0011.2 'put (case insensitive)':
test_hashmap "put key1 value1
put key2 value2
put fooBarFrotz value3
size" "NULL
NULL
NULL
64 3" ignorecase
ok 2 - put (case insensitive)
expecting success of 0011.3 'replace':
test_hashmap "put key1 value1
put key1 value2
put fooBarFrotz value3
put fooBarFrotz value4
size" "NULL
value1
NULL
value3
64 2"
ok 3 - replace
expecting success of 0011.4 'replace (case insensitive)':
test_hashmap "put key1 value1
put Key1 value2
put fooBarFrotz value3
put foobarfrotz value4
size" "NULL
value1
NULL
value3
64 2" ignorecase
ok 4 - replace (case insensitive)
expecting success of 0011.5 'get':
test_hashmap "put key1 value1
put key2 value2
put fooBarFrotz value3
put foobarfrotz value4
get key1
get key2
get fooBarFrotz
get notInMap" "NULL
NULL
NULL
NULL
value1
value2
value3
NULL"
ok 5 - get
expecting success of 0011.6 'get (case insensitive)':
test_hashmap "put key1 value1
put key2 value2
put fooBarFrotz value3
get Key1
get keY2
get foobarfrotz
get notInMap" "NULL
NULL
NULL
value1
value2
value3
NULL" ignorecase
ok 6 - get (case insensitive)
expecting success of 0011.7 'add':
test_hashmap "add key1 value1
add key1 value2
add fooBarFrotz value3
add fooBarFrotz value4
get key1
get fooBarFrotz
get notInMap" "value2
value1
value4
value3
NULL"
ok 7 - add
expecting success of 0011.8 'add (case insensitive)':
test_hashmap "add key1 value1
add Key1 value2
add fooBarFrotz value3
add foobarfrotz value4
get key1
get Foobarfrotz
get notInMap" "value2
value1
value4
value3
NULL" ignorecase
ok 8 - add (case insensitive)
expecting success of 0011.9 'remove':
test_hashmap "put key1 value1
put key2 value2
put fooBarFrotz value3
remove key1
remove key2
remove notInMap
size" "NULL
NULL
NULL
value1
value2
NULL
64 1"
ok 9 - remove
expecting success of 0011.10 'remove (case insensitive)':
test_hashmap "put key1 value1
put key2 value2
put fooBarFrotz value3
remove Key1
remove keY2
remove notInMap
size" "NULL
NULL
NULL
value1
value2
NULL
64 1" ignorecase
ok 10 - remove (case insensitive)
expecting success of 0011.11 'iterate':
test-tool hashmap >actual.raw <<-\EOF &&
put key1 value1
put key2 value2
put fooBarFrotz value3
iterate
EOF
cat >expect <<-\EOF &&
NULL
NULL
NULL
fooBarFrotz value3
key1 value1
key2 value2
EOF
sort <actual.raw >actual &&
test_cmp expect actual
ok 11 - iterate
expecting success of 0011.12 'iterate (case insensitive)':
test-tool hashmap ignorecase >actual.raw <<-\EOF &&
put key1 value1
put key2 value2
put fooBarFrotz value3
iterate
EOF
cat >expect <<-\EOF &&
NULL
NULL
NULL
fooBarFrotz value3
key1 value1
key2 value2
EOF
sort <actual.raw >actual &&
test_cmp expect actual
ok 12 - iterate (case insensitive)
expecting success of 0011.13 'grow / shrink':
rm -f in &&
rm -f expect &&
for n in $(test_seq 51)
do
echo put key$n value$n >> in &&
echo NULL >> expect || return 1
done &&
echo size >> in &&
echo 64 51 >> expect &&
echo put key52 value52 >> in &&
echo NULL >> expect &&
echo size >> in &&
echo 256 52 >> expect &&
for n in $(test_seq 12)
do
echo remove key$n >> in &&
echo value$n >> expect || return 1
done &&
echo size >> in &&
echo 256 40 >> expect &&
echo remove key40 >> in &&
echo value40 >> expect &&
echo size >> in &&
echo 64 39 >> expect &&
cat in | test-tool hashmap > out &&
test_cmp expect out
ok 13 - grow / shrink
expecting success of 0011.14 'string interning':
test_hashmap "intern value1
intern Value1
intern value2
intern value2
" "value1
Value1
value2
value2"
ok 14 - string interning
# passed all 14 test(s)
1..14
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0012-help.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0012-help/.git/
expecting success of 0012.1 'setup':
# Just write out which page gets requested
write_script test-browser <<-\EOF
echo "$*" >test-browser.log
EOF
ok 1 - setup
expecting success of 0012.2 'basic help commands':
git help >/dev/null &&
git help -a --no-verbose >/dev/null &&
git help -g >/dev/null &&
git help -a >/dev/null
ok 2 - basic help commands
expecting success of 0012.3 'invalid usage':
test_expect_code 129 git help -a add &&
test_expect_code 129 git help --all add &&
test_expect_code 129 git help -g add &&
test_expect_code 129 git help -a -c &&
test_expect_code 129 git help -g add &&
test_expect_code 129 git help -a -g &&
test_expect_code 129 git help --user-interfaces add &&
test_expect_code 129 git help -g -c &&
test_expect_code 129 git help --config-for-completion add &&
test_expect_code 129 git help --config-sections-for-completion add
fatal: the '--all' option doesn't take any non-option arguments
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
fatal: the '--all' option doesn't take any non-option arguments
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
fatal: the '--guides' option doesn't take any non-option arguments
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
error: switch `c' is incompatible with --all
fatal: the '--guides' option doesn't take any non-option arguments
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
error: switch `g' is incompatible with --all
fatal: the '--user-interfaces' option doesn't take any non-option arguments
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
error: switch `c' is incompatible with --guides
fatal: the '--config-for-completion' option doesn't take any non-option arguments
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
fatal: the '--config-sections-for-completion' option doesn't take any non-option arguments
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
ok 3 - invalid usage
expecting success of 0012.4 'invalid usage of '-a' with [-i|-m|-w]':
git help $opt &&
test_expect_code 129 git help $opt -i &&
test_expect_code 129 git help $opt -m &&
test_expect_code 129 git help $opt -w
See 'git help <command>' to read about a specific subcommand
Main Porcelain Commands
add Add file contents to the index
am Apply a series of patches from a mailbox
archive Create an archive of files from a named tree
bisect Use binary search to find the commit that introduced a bug
branch List, create, or delete branches
bundle Move objects and refs by archive
checkout Switch branches or restore working tree files
cherry-pick Apply the changes introduced by some existing commits
citool Graphical alternative to git-commit
clean Remove untracked files from the working tree
clone Clone a repository into a new directory
commit Record changes to the repository
describe Give an object a human readable name based on an available ref
diff Show changes between commits, commit and working tree, etc
fetch Download objects and refs from another repository
format-patch Prepare patches for e-mail submission
gc Cleanup unnecessary files and optimize the local repository
gitk The Git repository browser
grep Print lines matching a pattern
gui A portable graphical interface to Git
init Create an empty Git repository or reinitialize an existing one
log Show commit logs
maintenance Run tasks to optimize Git repository data
merge Join two or more development histories together
mv Move or rename a file, a directory, or a symlink
notes Add or inspect object notes
pull Fetch from and integrate with another repository or a local branch
push Update remote refs along with associated objects
range-diff Compare two commit ranges (e.g. two versions of a branch)
rebase Reapply commits on top of another base tip
reset Reset current HEAD to the specified state
restore Restore working tree files
revert Revert some existing commits
rm Remove files from the working tree and from the index
scalar A tool for managing large Git repositories
shortlog Summarize 'git log' output
show Show various types of objects
sparse-checkout Reduce your working tree to a subset of tracked files
stash Stash the changes in a dirty working directory away
status Show the working tree status
submodule Initialize, update or inspect submodules
switch Switch branches
tag Create, list, delete or verify a tag object signed with GPG
worktree Manage multiple working trees
Ancillary Commands / Manipulators
config Get and set repository or global options
fast-export Git data exporter
fast-import Backend for fast Git data importers
filter-branch Rewrite branches
mergetool Run merge conflict resolution tools to resolve merge conflicts
pack-refs Pack heads and tags for efficient repository access
prune Prune all unreachable objects from the object database
reflog Manage reflog information
remote Manage set of tracked repositories
repack Pack unpacked objects in a repository
replace Create, list, delete refs to replace objects
Ancillary Commands / Interrogators
annotate Annotate file lines with commit information
blame Show what revision and author last modified each line of a file
bugreport Collect information for user to file a bug report
count-objects Count unpacked number of objects and their disk consumption
diagnose Generate a zip archive of diagnostic information
difftool Show changes using common diff tools
fsck Verifies the connectivity and validity of the objects in the database
gitweb Git web interface (web frontend to Git repositories)
help Display help information about Git
instaweb Instantly browse your working repository in gitweb
merge-tree Perform merge without touching index or working tree
rerere Reuse recorded resolution of conflicted merges
show-branch Show branches and their commits
verify-commit Check the GPG signature of commits
verify-tag Check the GPG signature of tags
version Display version information about Git
whatchanged Show logs with difference each commit introduces
Interacting with Others
archimport Import a GNU Arch repository into Git
cvsexportcommit Export a single commit to a CVS checkout
cvsimport Salvage your data out of another SCM people love to hate
cvsserver A CVS server emulator for Git
imap-send Send a collection of patches from stdin to an IMAP folder
p4 Import from and submit to Perforce repositories
quiltimport Applies a quilt patchset onto the current branch
request-pull Generates a summary of pending changes
send-email Send a collection of patches as emails
svn Bidirectional operation between a Subversion repository and Git
Low-level Commands / Manipulators
apply Apply a patch to files and/or to the index
checkout-index Copy files from the index to the working tree
commit-graph Write and verify Git commit-graph files
commit-tree Create a new commit object
hash-object Compute object ID and optionally creates a blob from a file
index-pack Build pack index file for an existing packed archive
merge-file Run a three-way file merge
merge-index Run a merge for files needing merging
mktag Creates a tag object with extra validation
mktree Build a tree-object from ls-tree formatted text
multi-pack-index Write and verify multi-pack-indexes
pack-objects Create a packed archive of objects
prune-packed Remove extra objects that are already in pack files
read-tree Reads tree information into the index
symbolic-ref Read, modify and delete symbolic refs
unpack-objects Unpack objects from a packed archive
update-index Register file contents in the working tree to the index
update-ref Update the object name stored in a ref safely
write-tree Create a tree object from the current index
Low-level Commands / Interrogators
cat-file Provide content or type and size information for repository objects
cherry Find commits yet to be applied to upstream
diff-files Compares files in the working tree and the index
diff-index Compare a tree to the working tree or index
diff-tree Compares the content and mode of blobs found via two tree objects
for-each-ref Output information on each ref
for-each-repo Run a Git command on a list of repositories
get-tar-commit-id Extract commit ID from an archive created using git-archive
ls-files Show information about files in the index and the working tree
ls-remote List references in a remote repository
ls-tree List the contents of a tree object
merge-base Find as good common ancestors as possible for a merge
name-rev Find symbolic names for given revs
pack-redundant Find redundant pack files
rev-list Lists commit objects in reverse chronological order
rev-parse Pick out and massage parameters
show-index Show packed archive index
show-ref List references in a local repository
unpack-file Creates a temporary file with a blob's contents
var Show a Git logical variable
verify-pack Validate packed Git archive files
Low-level Commands / Syncing Repositories
daemon A really simple server for Git repositories
fetch-pack Receive missing objects from another repository
http-backend Server side implementation of Git over HTTP
send-pack Push objects over Git protocol to another repository
update-server-info Update auxiliary info file to help dumb servers
Low-level Commands / Internal Helpers
check-attr Display gitattributes information
check-ignore Debug gitignore / exclude files
check-mailmap Show canonical names and email addresses of contacts
check-ref-format Ensures that a reference name is well formed
column Display data in columns
credential Retrieve and store user credentials
credential-cache Helper to temporarily store passwords in memory
credential-store Helper to store credentials on disk
fmt-merge-msg Produce a merge commit message
hook Run git hooks
interpret-trailers Add or parse structured information in commit messages
mailinfo Extracts patch and authorship from a single e-mail message
mailsplit Simple UNIX mbox splitter program
merge-one-file The standard helper program to use with git-merge-index
patch-id Compute unique ID for a patch
sh-i18n Git's i18n setup code for shell scripts
sh-setup Common Git shell script setup code
stripspace Remove unnecessary whitespace
User-facing repository, command and file interfaces
attributes Defining attributes per path
cli Git command-line interface and conventions
hooks Hooks used by Git
ignore Specifies intentionally untracked files to ignore
mailmap Map author/committer names and/or E-Mail addresses
modules Defining submodule properties
repository-layout Git Repository Layout
revisions Specifying revisions and ranges for Git
Developer-facing file formats, protocols and other interfaces
format-bundle The bundle file format
format-chunk Chunk-based file formats
format-commit-graph Git commit-graph format
format-index Git index format
format-pack Git pack format
format-signature Git cryptographic signature formats
protocol-capabilities Protocol v0 and v1 capabilities
protocol-common Things common to various protocols
protocol-http Git HTTP-based protocols
protocol-pack How packs are transferred over-the-wire
protocol-v2 Git Wire Protocol, Version 2
fatal: options '--all' and '--info' cannot be used together
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
fatal: options '--all' and '--man' cannot be used together
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
fatal: options '--all' and '--web' cannot be used together
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
ok 4 - invalid usage of '-a' with [-i|-m|-w]
expecting success of 0012.5 'invalid usage of '-g' with [-i|-m|-w]':
git help $opt &&
test_expect_code 129 git help $opt -i &&
test_expect_code 129 git help $opt -m &&
test_expect_code 129 git help $opt -w
The Git concept guides are:
core-tutorial A Git core tutorial for developers
credentials Providing usernames and passwords to Git
cvs-migration Git for CVS users
diffcore Tweaking diff output
everyday A useful minimum set of commands for Everyday Git
faq Frequently asked questions about using Git
glossary A Git Glossary
namespaces Git namespaces
remote-helpers Helper programs to interact with remote repositories
submodules Mounting one repository inside another
tutorial A tutorial introduction to Git
tutorial-2 A tutorial introduction to Git: part two
workflows An overview of recommended workflows with Git
'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.
See 'git help git' for an overview of the system.
fatal: options '--guides' and '--info' cannot be used together
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
fatal: options '--guides' and '--man' cannot be used together
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
fatal: options '--guides' and '--web' cannot be used together
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
ok 5 - invalid usage of '-g' with [-i|-m|-w]
expecting success of 0012.6 'invalid usage of '-g' with --no-external-commands':
test_expect_code 129 git help $opt --no-external-commands
fatal: the '--no-[external-commands|aliases]' options can only be used with '--all'
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
ok 6 - invalid usage of '-g' with --no-external-commands
expecting success of 0012.7 'invalid usage of '-g' with --no-aliases':
test_expect_code 129 git help $opt --no-external-commands
fatal: the '--no-[external-commands|aliases]' options can only be used with '--all'
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
ok 7 - invalid usage of '-g' with --no-aliases
expecting success of 0012.8 'invalid usage of '-c' with [-i|-m|-w]':
git help $opt &&
test_expect_code 129 git help $opt -i &&
test_expect_code 129 git help $opt -m &&
test_expect_code 129 git help $opt -w
add.ignoreErrors
add.interactive.useBuiltin
advice.addEmbeddedRepo
advice.addEmptyPathspec
advice.addIgnoredFile
advice.amWorkDir
advice.ambiguousFetchRefspec
advice.checkoutAmbiguousRemoteBranchName
advice.commitBeforeMerge
advice.detachedHead
advice.fetchShowForcedUpdates
advice.graftFileDeprecated
advice.ignoredHook
advice.implicitIdentity
advice.nestedTag
advice.objectNameWarning
advice.pushAlreadyExists
advice.pushFetchFirst
advice.pushNeedsForce
advice.pushNonFFCurrent
advice.pushNonFFMatching
advice.pushNonFastForward
advice.pushRefNeedsUpdate
advice.pushUnqualifiedRefName
advice.pushUpdateRejected
advice.resetNoRefresh
advice.resolveConflict
advice.rmHints
advice.sequencerInUse
advice.setUpstreamFailure
advice.skippedCherryPicks
advice.statusAheadBehindWarning
advice.statusHints
advice.statusUoption
advice.submoduleAlternateErrorStrategyDie
advice.submodulesNotUpdated
advice.suggestDetachingHead
advice.updateSparsePath
advice.waitingForEditor
alias.*
am.keepcr
am.threeWay
apply.ignoreWhitespace
apply.whitespace
author.email
author.name
blame.blankBoundary
blame.coloring
blame.date
blame.ignoreRevsFile
blame.markIgnoredLines
blame.markUnblamableLines
blame.showEmail
blame.showRoot
branch.<name>.description
branch.<name>.merge
branch.<name>.mergeOptions
branch.<name>.pushRemote
branch.<name>.rebase
branch.<name>.remote
branch.autoSetupMerge
branch.autoSetupRebase
branch.sort
browser.<tool>.cmd
browser.<tool>.path
bundle.*
bundle.<id>.*
bundle.<id>.uri
bundle.heuristic
bundle.mode
bundle.version
checkout.defaultRemote
checkout.guess
checkout.thresholdForParallelism
checkout.workers
clean.requireForce
clone.defaultRemoteName
clone.filterSubmodules
clone.rejectShallow
color.advice
color.advice.hint
color.blame.highlightRecent
color.blame.repeatedLines
color.branch
color.branch.current
color.branch.local
color.branch.plain
color.branch.remote
color.branch.reset
color.branch.upstream
color.branch.worktree
color.decorate.HEAD
color.decorate.branch
color.decorate.grafted
color.decorate.remoteBranch
color.decorate.stash
color.decorate.tag
color.diff
color.diff.commit
color.diff.context
color.diff.contextBold
color.diff.contextDimmed
color.diff.frag
color.diff.func
color.diff.meta
color.diff.new
color.diff.newBold
color.diff.newDimmed
color.diff.newMoved
color.diff.newMovedAlternative
color.diff.newMovedAlternativeDimmed
color.diff.newMovedDimmed
color.diff.old
color.diff.oldBold
color.diff.oldDimmed
color.diff.oldMoved
color.diff.oldMovedAlternative
color.diff.oldMovedAlternativeDimmed
color.diff.oldMovedDimmed
color.diff.plain
color.diff.whitespace
color.grep
color.grep.column
color.grep.context
color.grep.filename
color.grep.function
color.grep.lineNumber
color.grep.match
color.grep.matchContext
color.grep.matchSelected
color.grep.selected
color.grep.separator
color.interactive
color.interactive.error
color.interactive.header
color.interactive.help
color.interactive.plain
color.interactive.prompt
color.interactive.reset
color.pager
color.push
color.push.error
color.remote
color.remote.error
color.remote.hint
color.remote.success
color.remote.warning
color.showBranch
color.status
color.status.added
color.status.branch
color.status.changed
color.status.header
color.status.localBranch
color.status.noBranch
color.status.remoteBranch
color.status.unmerged
color.status.untracked
color.status.updated
color.transport
color.transport.rejected
color.ui
column.branch
column.clean
column.status
column.tag
column.ui
commit.cleanup
commit.gpgSign
commit.status
commit.template
commit.verbose
commitGraph.generationVersion
commitGraph.maxNewFilters
commitGraph.readChangedPaths
committer.email
committer.name
completion.commands
core.abbrev
core.alternateRefsCommand
core.alternateRefsPrefixes
core.askPass
core.attributesFile
core.autocrlf
core.bare
core.bigFileThreshold
core.checkRoundtripEncoding
core.checkStat
core.commentChar
core.commitGraph
core.compression
core.createObject
core.deltaBaseCacheLimit
core.editor
core.eol
core.excludesFile
core.fileMode
core.filesRefLockTimeout
core.fsmonitor
core.fsmonitorHookVersion
core.fsync
core.fsyncMethod
core.fsyncObjectFiles
core.gitProxy
core.hideDotFiles
core.hooksPath
core.ignoreCase
core.ignoreStat
core.logAllRefUpdates
core.looseCompression
core.multiPackIndex
core.notesRef
core.packedGitLimit
core.packedGitWindowSize
core.packedRefsTimeout
core.pager
core.precomposeUnicode
core.preferSymlinkRefs
core.preloadIndex
core.protectHFS
core.protectNTFS
core.quotePath
core.repositoryFormatVersion
core.restrictinheritedhandles
core.safecrlf
core.sharedRepository
core.sparseCheckout
core.sparseCheckoutCone
core.splitIndex
core.sshCommand
core.symlinks
core.trustctime
core.unsetenvvars
core.untrackedCache
core.useReplaceRefs
core.warnAmbiguousRefs
core.whitespace
core.worktree
credential.<url>.*
credential.helper
credential.useHttpPath
credential.username
credentialCache.ignoreSIGHUP
credentialStore.lockTimeoutMS
diff.<driver>.binary
diff.<driver>.cachetextconv
diff.<driver>.command
diff.<driver>.textconv
diff.<driver>.wordRegex
diff.<driver>.xfuncname
diff.algorithm
diff.autoRefreshIndex
diff.colorMoved
diff.colorMovedWS
diff.context
diff.dirstat
diff.external
diff.guitool
diff.ignoreSubmodules
diff.indentHeuristic
diff.interHunkContext
diff.mnemonicPrefix
diff.noprefix
diff.orderFile
diff.relative
diff.renameLimit
diff.renames
diff.statGraphWidth
diff.submodule
diff.suppressBlankEmpty
diff.tool
diff.wordRegex
diff.wsErrorHighlight
difftool.<tool>.cmd
difftool.<tool>.path
difftool.prompt
difftool.trustExitCode
extensions.objectFormat
extensions.worktreeConfig
fastimport.unpackLimit
feature.*
feature.experimental
feature.manyFiles
fetch.bundleCreationToken
fetch.bundleURI
fetch.fsck.<msg-id>
fetch.fsck.skipList
fetch.fsckObjects
fetch.negotiationAlgorithm
fetch.output
fetch.parallel
fetch.prune
fetch.pruneTags
fetch.recurseSubmodules
fetch.showForcedUpdates
fetch.unpackLimit
fetch.writeCommitGraph
filter.<driver>.clean
filter.<driver>.smudge
format.attach
format.cc
format.coverFromDescription
format.coverLetter
format.encodeEmailHeaders
format.filenameMaxLength
format.forceInBodyFrom
format.from
format.headers
format.mboxrd
format.notes
format.numbered
format.outputDirectory
format.pretty
format.signOff
format.signature
format.signatureFile
format.subjectPrefix
format.suffix
format.thread
format.to
format.useAutoBase
fsck.badDate
fsck.badDateOverflow
fsck.badEmail
fsck.badFilemode
fsck.badName
fsck.badObjectSha1
fsck.badParentSha1
fsck.badTagName
fsck.badTimezone
fsck.badTree
fsck.badTreeSha1
fsck.badType
fsck.duplicateEntries
fsck.emptyName
fsck.extraHeaderEntry
fsck.fullPathname
fsck.gitattributesBlob
fsck.gitattributesLarge
fsck.gitattributesLineLength
fsck.gitattributesMissing
fsck.gitattributesSymlink
fsck.gitignoreSymlink
fsck.gitmodulesBlob
fsck.gitmodulesLarge
fsck.gitmodulesMissing
fsck.gitmodulesName
fsck.gitmodulesParse
fsck.gitmodulesPath
fsck.gitmodulesSymlink
fsck.gitmodulesUpdate
fsck.gitmodulesUrl
fsck.hasDot
fsck.hasDotdot
fsck.hasDotgit
fsck.mailmapSymlink
fsck.missingAuthor
fsck.missingCommitter
fsck.missingEmail
fsck.missingNameBeforeEmail
fsck.missingObject
fsck.missingSpaceBeforeDate
fsck.missingSpaceBeforeEmail
fsck.missingTag
fsck.missingTagEntry
fsck.missingTaggerEntry
fsck.missingTree
fsck.missingType
fsck.missingTypeEntry
fsck.multipleAuthors
fsck.nulInCommit
fsck.nulInHeader
fsck.nullSha1
fsck.skipList
fsck.treeNotSorted
fsck.unknownType
fsck.unterminatedHeader
fsck.zeroPaddedDate
fsck.zeroPaddedFilemode
fsmonitor.allowRemote
fsmonitor.socketDir
gc.<pattern>.reflogExpire
gc.<pattern>.reflogExpireUnreachable
gc.aggressiveDepth
gc.aggressiveWindow
gc.auto
gc.autoDetach
gc.autoPackLimit
gc.bigPackThreshold
gc.cruftPacks
gc.logExpiry
gc.packRefs
gc.pruneExpire
gc.reflogExpire
gc.reflogExpireUnreachable
gc.rerereResolved
gc.rerereUnresolved
gc.worktreePruneExpire
gc.writeCommitGraph
gitcvs.allBinary
gitcvs.commitMsgAnnotation
gitcvs.dbDriver
gitcvs.dbName
gitcvs.dbPass
gitcvs.dbTableNamePrefix
gitcvs.dbUser
gitcvs.enabled
gitcvs.logFile
gitcvs.usecrlfattr
gitweb.avatar
gitweb.blame
gitweb.category
gitweb.description
gitweb.grep
gitweb.highlight
gitweb.owner
gitweb.patches
gitweb.pickaxe
gitweb.remote_heads
gitweb.showSizes
gitweb.snapshot
gitweb.url
gpg.<format>.program
gpg.format
gpg.minTrustLevel
gpg.program
gpg.ssh.allowedSignersFile
gpg.ssh.defaultKeyCommand
gpg.ssh.revocationFile
grep.column
grep.extendedRegexp
grep.fallbackToNoIndex
grep.fullName
grep.lineNumber
grep.patternType
grep.threads
gui.blamehistoryctx
gui.commitMsgWidth
gui.copyBlameThreshold
gui.diffContext
gui.displayUntracked
gui.encoding
gui.fastCopyBlame
gui.matchTrackingBranch
gui.newBranchTemplate
gui.pruneDuringFetch
gui.spellingDictionary
gui.trustmtime
guitool.<name>.argPrompt
guitool.<name>.cmd
guitool.<name>.confirm
guitool.<name>.needsFile
guitool.<name>.noConsole
guitool.<name>.noRescan
guitool.<name>.prompt
guitool.<name>.revPrompt
guitool.<name>.revUnmerged
guitool.<name>.title
help.autoCorrect
help.browser
help.format
help.htmlPath
http.<url>.*
http.cookieFile
http.curloptResolve
http.delegation
http.emptyAuth
http.extraHeader
http.followRedirects
http.lowSpeedLimit
http.lowSpeedTime
http.maxRequests
http.minSessions
http.noEPSV
http.pinnedPubkey
http.postBuffer
http.proxy
http.proxyAuthMethod
http.proxySSLCAInfo
http.proxySSLCert
http.proxySSLCertPasswordProtected
http.proxySSLKey
http.saveCookies
http.schannelCheckRevoke
http.schannelUseSSLCAInfo
http.sslBackend
http.sslCAInfo
http.sslCAPath
http.sslCert
http.sslCertPasswordProtected
http.sslCipherList
http.sslKey
http.sslTry
http.sslVerify
http.sslVersion
http.userAgent
http.version
i18n.commitEncoding
i18n.logOutputEncoding
imap.authMethod
imap.folder
imap.host
imap.pass
imap.port
imap.preformattedHTML
imap.sslverify
imap.tunnel
imap.user
include.path
includeIf.<condition>.path
index.recordEndOfIndexEntries
index.recordOffsetTable
index.skipHash
index.sparse
index.threads
index.version
init.defaultBranch
init.templateDir
instaweb.browser
instaweb.httpd
instaweb.local
instaweb.modulePath
instaweb.port
interactive.diffFilter
interactive.singleKey
log.abbrevCommit
log.date
log.decorate
log.diffMerges
log.excludeDecoration
log.follow
log.graphColors
log.initialDecorationSet
log.mailmap
log.showRoot
log.showSignature
lsrefs.unborn
mailinfo.scissors
mailmap.blob
mailmap.file
maintenance.<task>.enabled
maintenance.<task>.schedule
maintenance.auto
maintenance.commit-graph.auto
maintenance.incremental-repack.auto
maintenance.loose-objects.auto
maintenance.strategy
man.<tool>.cmd
man.<tool>.path
man.viewer
merge.<driver>.driver
merge.<driver>.name
merge.<driver>.recursive
merge.autoStash
merge.branchdesc
merge.conflictStyle
merge.defaultToUpstream
merge.directoryRenames
merge.ff
merge.guitool
merge.log
merge.renameLimit
merge.renames
merge.renormalize
merge.stat
merge.suppressDest
merge.tool
merge.verbosity
merge.verifySignatures
mergetool.<tool>.cmd
mergetool.<tool>.hideResolved
mergetool.<tool>.path
mergetool.<tool>.trustExitCode
mergetool.hideResolved
mergetool.keepBackup
mergetool.keepTemporaries
mergetool.meld.hasOutput
mergetool.meld.useAutoMerge
mergetool.prompt
mergetool.vimdiff.layout
mergetool.writeToTemp
notes.<name>.mergeStrategy
notes.displayRef
notes.mergeStrategy
notes.rewrite.<command>
notes.rewriteMode
notes.rewriteRef
pack.allowPackReuse
pack.compression
pack.deltaCacheLimit
pack.deltaCacheSize
pack.depth
pack.indexVersion
pack.island
pack.islandCore
pack.packSizeLimit
pack.preferBitmapTips
pack.threads
pack.useBitmaps
pack.useSparse
pack.window
pack.windowMemory
pack.writeBitmapHashCache
pack.writeBitmapLookupTable
pack.writeReverseIndex
pager.<cmd>
pretty.<name>
protocol.<name>.allow
protocol.allow
protocol.version
pull.ff
pull.octopus
pull.rebase
pull.twohead
push.autoSetupRemote
push.default
push.followTags
push.gpgSign
push.negotiate
push.pushOption
push.recurseSubmodules
push.useBitmaps
push.useForceIfIncludes
rebase.abbreviateCommands
rebase.autoSquash
rebase.autoStash
rebase.backend
rebase.forkPoint
rebase.instructionFormat
rebase.missingCommitsCheck
rebase.rescheduleFailedExec
rebase.stat
rebase.updateRefs
receive.advertiseAtomic
receive.advertisePushOptions
receive.autogc
receive.certNonceSeed
receive.certNonceSlop
receive.denyCurrentBranch
receive.denyDeleteCurrent
receive.denyDeletes
receive.denyNonFastForwards
receive.fsck.badDate
receive.fsck.badDateOverflow
receive.fsck.badEmail
receive.fsck.badFilemode
receive.fsck.badName
receive.fsck.badObjectSha1
receive.fsck.badParentSha1
receive.fsck.badTagName
receive.fsck.badTimezone
receive.fsck.badTree
receive.fsck.badTreeSha1
receive.fsck.badType
receive.fsck.duplicateEntries
receive.fsck.emptyName
receive.fsck.extraHeaderEntry
receive.fsck.fullPathname
receive.fsck.gitattributesBlob
receive.fsck.gitattributesLarge
receive.fsck.gitattributesLineLength
receive.fsck.gitattributesMissing
receive.fsck.gitattributesSymlink
receive.fsck.gitignoreSymlink
receive.fsck.gitmodulesBlob
receive.fsck.gitmodulesLarge
receive.fsck.gitmodulesMissing
receive.fsck.gitmodulesName
receive.fsck.gitmodulesParse
receive.fsck.gitmodulesPath
receive.fsck.gitmodulesSymlink
receive.fsck.gitmodulesUpdate
receive.fsck.gitmodulesUrl
receive.fsck.hasDot
receive.fsck.hasDotdot
receive.fsck.hasDotgit
receive.fsck.mailmapSymlink
receive.fsck.missingAuthor
receive.fsck.missingCommitter
receive.fsck.missingEmail
receive.fsck.missingNameBeforeEmail
receive.fsck.missingObject
receive.fsck.missingSpaceBeforeDate
receive.fsck.missingSpaceBeforeEmail
receive.fsck.missingTag
receive.fsck.missingTagEntry
receive.fsck.missingTaggerEntry
receive.fsck.missingTree
receive.fsck.missingType
receive.fsck.missingTypeEntry
receive.fsck.multipleAuthors
receive.fsck.nulInCommit
receive.fsck.nulInHeader
receive.fsck.nullSha1
receive.fsck.skipList
receive.fsck.treeNotSorted
receive.fsck.unknownType
receive.fsck.unterminatedHeader
receive.fsck.zeroPaddedDate
receive.fsck.zeroPaddedFilemode
receive.fsckObjects
receive.hideRefs
receive.keepAlive
receive.maxInputSize
receive.procReceiveRefs
receive.shallowUpdate
receive.unpackLimit
receive.updateServerInfo
remote.<name>.fetch
remote.<name>.mirror
remote.<name>.partialclonefilter
remote.<name>.promisor
remote.<name>.proxy
remote.<name>.proxyAuthMethod
remote.<name>.prune
remote.<name>.pruneTags
remote.<name>.push
remote.<name>.pushurl
remote.<name>.receivepack
remote.<name>.skipDefaultUpdate
remote.<name>.skipFetchAll
remote.<name>.tagOpt
remote.<name>.uploadpack
remote.<name>.url
remote.<name>.vcs
remote.pushDefault
remotes.<group>
repack.cruftDepth
repack.cruftThreads
repack.cruftWindow
repack.cruftWindowMemory
repack.packKeptObjects
repack.updateServerInfo
repack.useDeltaBaseOffset
repack.useDeltaIslands
repack.writeBitmaps
rerere.autoUpdate
rerere.enabled
revert.reference
safe.bareRepository
safe.directory
sendemail.<identity>.*
sendemail.aliasFileType
sendemail.aliasesFile
sendemail.annotate
sendemail.bcc
sendemail.cc
sendemail.ccCmd
sendemail.chainReplyTo
sendemail.confirm
sendemail.envelopeSender
sendemail.forbidSendmailVariables
sendemail.from
sendemail.identity
sendemail.multiEdit
sendemail.signedoffbycc
sendemail.smtpBatchSize
sendemail.smtpDomain
sendemail.smtpEncryption
sendemail.smtpPass
sendemail.smtpReloginDelay
sendemail.smtpServer
sendemail.smtpServerOption
sendemail.smtpServerPort
sendemail.smtpUser
sendemail.smtpsslcertpath
sendemail.suppressFrom
sendemail.suppresscc
sendemail.thread
sendemail.to
sendemail.tocmd
sendemail.transferEncoding
sendemail.validate
sendemail.xmailer
sequence.editor
showBranch.default
sparse.expectFilesOutsideOfPatterns
splitIndex.maxPercentChange
splitIndex.sharedIndexExpire
ssh.variant
stash.showIncludeUntracked
stash.showPatch
stash.showStat
status.aheadBehind
status.branch
status.displayCommentPrefix
status.relativePaths
status.renameLimit
status.renames
status.short
status.showStash
status.showUntrackedFiles
status.submoduleSummary
submodule.<name>.active
submodule.<name>.branch
submodule.<name>.fetchRecurseSubmodules
submodule.<name>.ignore
submodule.<name>.update
submodule.<name>.url
submodule.active
submodule.alternateErrorStrategy
submodule.alternateLocation
submodule.fetchJobs
submodule.propagateBranches
submodule.recurse
tag.forceSignAnnotated
tag.gpgSign
tag.sort
tar.umask
trace2.configParams
trace2.destinationDebug
trace2.envVars
trace2.eventBrief
trace2.eventNesting
trace2.eventTarget
trace2.maxFiles
trace2.normalBrief
trace2.normalTarget
trace2.perfBrief
trace2.perfTarget
transfer.advertiseSID
transfer.bundleURI
transfer.credentialsInUrl
transfer.fsckObjects
transfer.hideRefs
transfer.unpackLimit
uploadarchive.allowUnreachable
uploadpack.allowAnySHA1InWant
uploadpack.allowFilter
uploadpack.allowReachableSHA1InWant
uploadpack.allowRefInWant
uploadpack.allowTipSHA1InWant
uploadpack.hideRefs
uploadpack.keepAlive
uploadpack.packObjectsHook
uploadpackfilter.<filter>.allow
uploadpackfilter.allow
uploadpackfilter.tree.maxDepth
url.<base>.insteadOf
url.<base>.pushInsteadOf
user.email
user.name
user.signingKey
user.useConfigOnly
versionsort.suffix
web.browser
worktree.guessRemote
'git help config' for more information
fatal: options '--config' and '--info' cannot be used together
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
fatal: options '--config' and '--man' cannot be used together
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
fatal: options '--config' and '--web' cannot be used together
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
ok 8 - invalid usage of '-c' with [-i|-m|-w]
expecting success of 0012.9 'invalid usage of '-c' with --no-external-commands':
test_expect_code 129 git help $opt --no-external-commands
fatal: the '--no-[external-commands|aliases]' options can only be used with '--all'
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
ok 9 - invalid usage of '-c' with --no-external-commands
expecting success of 0012.10 'invalid usage of '-c' with --no-aliases':
test_expect_code 129 git help $opt --no-external-commands
fatal: the '--no-[external-commands|aliases]' options can only be used with '--all'
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
ok 10 - invalid usage of '-c' with --no-aliases
expecting success of 0012.11 'invalid usage of '--config-for-completion' with [-i|-m|-w]':
git help $opt &&
test_expect_code 129 git help $opt -i &&
test_expect_code 129 git help $opt -m &&
test_expect_code 129 git help $opt -w
add.ignoreErrors
add.interactive.useBuiltin
advice.addEmbeddedRepo
advice.addEmptyPathspec
advice.addIgnoredFile
advice.amWorkDir
advice.ambiguousFetchRefspec
advice.checkoutAmbiguousRemoteBranchName
advice.commitBeforeMerge
advice.detachedHead
advice.fetchShowForcedUpdates
advice.graftFileDeprecated
advice.ignoredHook
advice.implicitIdentity
advice.nestedTag
advice.objectNameWarning
advice.pushAlreadyExists
advice.pushFetchFirst
advice.pushNeedsForce
advice.pushNonFFCurrent
advice.pushNonFFMatching
advice.pushNonFastForward
advice.pushRefNeedsUpdate
advice.pushUnqualifiedRefName
advice.pushUpdateRejected
advice.resetNoRefresh
advice.resolveConflict
advice.rmHints
advice.sequencerInUse
advice.setUpstreamFailure
advice.skippedCherryPicks
advice.statusAheadBehindWarning
advice.statusHints
advice.statusUoption
advice.submoduleAlternateErrorStrategyDie
advice.submodulesNotUpdated
advice.suggestDetachingHead
advice.updateSparsePath
advice.waitingForEditor
alias.
am.keepcr
am.threeWay
apply.ignoreWhitespace
apply.whitespace
author.email
author.name
blame.blankBoundary
blame.coloring
blame.date
blame.ignoreRevsFile
blame.markIgnoredLines
blame.markUnblamableLines
blame.showEmail
blame.showRoot
branch.
branch.autoSetupMerge
branch.autoSetupRebase
branch.sort
browser.
bundle.
bundle.heuristic
bundle.mode
bundle.version
checkout.defaultRemote
checkout.guess
checkout.thresholdForParallelism
checkout.workers
clean.requireForce
clone.defaultRemoteName
clone.filterSubmodules
clone.rejectShallow
color.advice
color.advice.hint
color.blame.highlightRecent
color.blame.repeatedLines
color.branch
color.branch.current
color.branch.local
color.branch.plain
color.branch.remote
color.branch.reset
color.branch.upstream
color.branch.worktree
color.decorate.HEAD
color.decorate.branch
color.decorate.grafted
color.decorate.remoteBranch
color.decorate.stash
color.decorate.tag
color.diff
color.diff.commit
color.diff.context
color.diff.contextBold
color.diff.contextDimmed
color.diff.frag
color.diff.func
color.diff.meta
color.diff.new
color.diff.newBold
color.diff.newDimmed
color.diff.newMoved
color.diff.newMovedAlternative
color.diff.newMovedAlternativeDimmed
color.diff.newMovedDimmed
color.diff.old
color.diff.oldBold
color.diff.oldDimmed
color.diff.oldMoved
color.diff.oldMovedAlternative
color.diff.oldMovedAlternativeDimmed
color.diff.oldMovedDimmed
color.diff.plain
color.diff.whitespace
color.grep
color.grep.column
color.grep.context
color.grep.filename
color.grep.function
color.grep.lineNumber
color.grep.match
color.grep.matchContext
color.grep.matchSelected
color.grep.selected
color.grep.separator
color.interactive
color.interactive.error
color.interactive.header
color.interactive.help
color.interactive.plain
color.interactive.prompt
color.interactive.reset
color.pager
color.push
color.push.error
color.remote
color.remote.error
color.remote.hint
color.remote.success
color.remote.warning
color.showBranch
color.status
color.status.added
color.status.branch
color.status.changed
color.status.header
color.status.localBranch
color.status.noBranch
color.status.remoteBranch
color.status.unmerged
color.status.untracked
color.status.updated
color.transport
color.transport.rejected
color.ui
column.branch
column.clean
column.status
column.tag
column.ui
commit.cleanup
commit.gpgSign
commit.status
commit.template
commit.verbose
commitGraph.generationVersion
commitGraph.maxNewFilters
commitGraph.readChangedPaths
committer.email
committer.name
completion.commands
core.abbrev
core.alternateRefsCommand
core.alternateRefsPrefixes
core.askPass
core.attributesFile
core.autocrlf
core.bare
core.bigFileThreshold
core.checkRoundtripEncoding
core.checkStat
core.commentChar
core.commitGraph
core.compression
core.createObject
core.deltaBaseCacheLimit
core.editor
core.eol
core.excludesFile
core.fileMode
core.filesRefLockTimeout
core.fsmonitor
core.fsmonitorHookVersion
core.fsync
core.fsyncMethod
core.fsyncObjectFiles
core.gitProxy
core.hideDotFiles
core.hooksPath
core.ignoreCase
core.ignoreStat
core.logAllRefUpdates
core.looseCompression
core.multiPackIndex
core.notesRef
core.packedGitLimit
core.packedGitWindowSize
core.packedRefsTimeout
core.pager
core.precomposeUnicode
core.preferSymlinkRefs
core.preloadIndex
core.protectHFS
core.protectNTFS
core.quotePath
core.repositoryFormatVersion
core.restrictinheritedhandles
core.safecrlf
core.sharedRepository
core.sparseCheckout
core.sparseCheckoutCone
core.splitIndex
core.sshCommand
core.symlinks
core.trustctime
core.unsetenvvars
core.untrackedCache
core.useReplaceRefs
core.warnAmbiguousRefs
core.whitespace
core.worktree
credential.
credential.helper
credential.useHttpPath
credential.username
credentialCache.ignoreSIGHUP
credentialStore.lockTimeoutMS
diff.
diff.algorithm
diff.autoRefreshIndex
diff.colorMoved
diff.colorMovedWS
diff.context
diff.dirstat
diff.external
diff.guitool
diff.ignoreSubmodules
diff.indentHeuristic
diff.interHunkContext
diff.mnemonicPrefix
diff.noprefix
diff.orderFile
diff.relative
diff.renameLimit
diff.renames
diff.statGraphWidth
diff.submodule
diff.suppressBlankEmpty
diff.tool
diff.wordRegex
diff.wsErrorHighlight
difftool.
difftool.prompt
difftool.trustExitCode
extensions.objectFormat
extensions.worktreeConfig
fastimport.unpackLimit
feature.
feature.experimental
feature.manyFiles
fetch.bundleCreationToken
fetch.bundleURI
fetch.fsck.
fetch.fsck.skipList
fetch.fsckObjects
fetch.negotiationAlgorithm
fetch.output
fetch.parallel
fetch.prune
fetch.pruneTags
fetch.recurseSubmodules
fetch.showForcedUpdates
fetch.unpackLimit
fetch.writeCommitGraph
filter.
format.attach
format.cc
format.coverFromDescription
format.coverLetter
format.encodeEmailHeaders
format.filenameMaxLength
format.forceInBodyFrom
format.from
format.headers
format.mboxrd
format.notes
format.numbered
format.outputDirectory
format.pretty
format.signOff
format.signature
format.signatureFile
format.subjectPrefix
format.suffix
format.thread
format.to
format.useAutoBase
fsck.badDate
fsck.badDateOverflow
fsck.badEmail
fsck.badFilemode
fsck.badName
fsck.badObjectSha1
fsck.badParentSha1
fsck.badTagName
fsck.badTimezone
fsck.badTree
fsck.badTreeSha1
fsck.badType
fsck.duplicateEntries
fsck.emptyName
fsck.extraHeaderEntry
fsck.fullPathname
fsck.gitattributesBlob
fsck.gitattributesLarge
fsck.gitattributesLineLength
fsck.gitattributesMissing
fsck.gitattributesSymlink
fsck.gitignoreSymlink
fsck.gitmodulesBlob
fsck.gitmodulesLarge
fsck.gitmodulesMissing
fsck.gitmodulesName
fsck.gitmodulesParse
fsck.gitmodulesPath
fsck.gitmodulesSymlink
fsck.gitmodulesUpdate
fsck.gitmodulesUrl
fsck.hasDot
fsck.hasDotdot
fsck.hasDotgit
fsck.mailmapSymlink
fsck.missingAuthor
fsck.missingCommitter
fsck.missingEmail
fsck.missingNameBeforeEmail
fsck.missingObject
fsck.missingSpaceBeforeDate
fsck.missingSpaceBeforeEmail
fsck.missingTag
fsck.missingTagEntry
fsck.missingTaggerEntry
fsck.missingTree
fsck.missingType
fsck.missingTypeEntry
fsck.multipleAuthors
fsck.nulInCommit
fsck.nulInHeader
fsck.nullSha1
fsck.skipList
fsck.treeNotSorted
fsck.unknownType
fsck.unterminatedHeader
fsck.zeroPaddedDate
fsck.zeroPaddedFilemode
fsmonitor.allowRemote
fsmonitor.socketDir
gc.
gc.aggressiveDepth
gc.aggressiveWindow
gc.auto
gc.autoDetach
gc.autoPackLimit
gc.bigPackThreshold
gc.cruftPacks
gc.logExpiry
gc.packRefs
gc.pruneExpire
gc.reflogExpire
gc.reflogExpireUnreachable
gc.rerereResolved
gc.rerereUnresolved
gc.worktreePruneExpire
gc.writeCommitGraph
gitcvs.allBinary
gitcvs.commitMsgAnnotation
gitcvs.dbDriver
gitcvs.dbName
gitcvs.dbPass
gitcvs.dbTableNamePrefix
gitcvs.dbUser
gitcvs.enabled
gitcvs.logFile
gitcvs.usecrlfattr
gitweb.avatar
gitweb.blame
gitweb.category
gitweb.description
gitweb.grep
gitweb.highlight
gitweb.owner
gitweb.patches
gitweb.pickaxe
gitweb.remote_heads
gitweb.showSizes
gitweb.snapshot
gitweb.url
gpg.
gpg.format
gpg.minTrustLevel
gpg.program
gpg.ssh.allowedSignersFile
gpg.ssh.defaultKeyCommand
gpg.ssh.revocationFile
grep.column
grep.extendedRegexp
grep.fallbackToNoIndex
grep.fullName
grep.lineNumber
grep.patternType
grep.threads
gui.blamehistoryctx
gui.commitMsgWidth
gui.copyBlameThreshold
gui.diffContext
gui.displayUntracked
gui.encoding
gui.fastCopyBlame
gui.matchTrackingBranch
gui.newBranchTemplate
gui.pruneDuringFetch
gui.spellingDictionary
gui.trustmtime
guitool.
help.autoCorrect
help.browser
help.format
help.htmlPath
http.
http.cookieFile
http.curloptResolve
http.delegation
http.emptyAuth
http.extraHeader
http.followRedirects
http.lowSpeedLimit
http.lowSpeedTime
http.maxRequests
http.minSessions
http.noEPSV
http.pinnedPubkey
http.postBuffer
http.proxy
http.proxyAuthMethod
http.proxySSLCAInfo
http.proxySSLCert
http.proxySSLCertPasswordProtected
http.proxySSLKey
http.saveCookies
http.schannelCheckRevoke
http.schannelUseSSLCAInfo
http.sslBackend
http.sslCAInfo
http.sslCAPath
http.sslCert
http.sslCertPasswordProtected
http.sslCipherList
http.sslKey
http.sslTry
http.sslVerify
http.sslVersion
http.userAgent
http.version
i18n.commitEncoding
i18n.logOutputEncoding
imap.authMethod
imap.folder
imap.host
imap.pass
imap.port
imap.preformattedHTML
imap.sslverify
imap.tunnel
imap.user
include.path
includeIf.
index.recordEndOfIndexEntries
index.recordOffsetTable
index.skipHash
index.sparse
index.threads
index.version
init.defaultBranch
init.templateDir
instaweb.browser
instaweb.httpd
instaweb.local
instaweb.modulePath
instaweb.port
interactive.diffFilter
interactive.singleKey
log.abbrevCommit
log.date
log.decorate
log.diffMerges
log.excludeDecoration
log.follow
log.graphColors
log.initialDecorationSet
log.mailmap
log.showRoot
log.showSignature
lsrefs.unborn
mailinfo.scissors
mailmap.blob
mailmap.file
maintenance.
maintenance.auto
maintenance.commit-graph.auto
maintenance.incremental-repack.auto
maintenance.loose-objects.auto
maintenance.strategy
man.
man.viewer
merge.
merge.autoStash
merge.branchdesc
merge.conflictStyle
merge.defaultToUpstream
merge.directoryRenames
merge.ff
merge.guitool
merge.log
merge.renameLimit
merge.renames
merge.renormalize
merge.stat
merge.suppressDest
merge.tool
merge.verbosity
merge.verifySignatures
mergetool.
mergetool.hideResolved
mergetool.keepBackup
mergetool.keepTemporaries
mergetool.meld.hasOutput
mergetool.meld.useAutoMerge
mergetool.prompt
mergetool.vimdiff.layout
mergetool.writeToTemp
notes.
notes.displayRef
notes.mergeStrategy
notes.rewrite.
notes.rewriteMode
notes.rewriteRef
pack.allowPackReuse
pack.compression
pack.deltaCacheLimit
pack.deltaCacheSize
pack.depth
pack.indexVersion
pack.island
pack.islandCore
pack.packSizeLimit
pack.preferBitmapTips
pack.threads
pack.useBitmaps
pack.useSparse
pack.window
pack.windowMemory
pack.writeBitmapHashCache
pack.writeBitmapLookupTable
pack.writeReverseIndex
pager.
pretty.
protocol.
protocol.allow
protocol.version
pull.ff
pull.octopus
pull.rebase
pull.twohead
push.autoSetupRemote
push.default
push.followTags
push.gpgSign
push.negotiate
push.pushOption
push.recurseSubmodules
push.useBitmaps
push.useForceIfIncludes
rebase.abbreviateCommands
rebase.autoSquash
rebase.autoStash
rebase.backend
rebase.forkPoint
rebase.instructionFormat
rebase.missingCommitsCheck
rebase.rescheduleFailedExec
rebase.stat
rebase.updateRefs
receive.advertiseAtomic
receive.advertisePushOptions
receive.autogc
receive.certNonceSeed
receive.certNonceSlop
receive.denyCurrentBranch
receive.denyDeleteCurrent
receive.denyDeletes
receive.denyNonFastForwards
receive.fsck.badDate
receive.fsck.badDateOverflow
receive.fsck.badEmail
receive.fsck.badFilemode
receive.fsck.badName
receive.fsck.badObjectSha1
receive.fsck.badParentSha1
receive.fsck.badTagName
receive.fsck.badTimezone
receive.fsck.badTree
receive.fsck.badTreeSha1
receive.fsck.badType
receive.fsck.duplicateEntries
receive.fsck.emptyName
receive.fsck.extraHeaderEntry
receive.fsck.fullPathname
receive.fsck.gitattributesBlob
receive.fsck.gitattributesLarge
receive.fsck.gitattributesLineLength
receive.fsck.gitattributesMissing
receive.fsck.gitattributesSymlink
receive.fsck.gitignoreSymlink
receive.fsck.gitmodulesBlob
receive.fsck.gitmodulesLarge
receive.fsck.gitmodulesMissing
receive.fsck.gitmodulesName
receive.fsck.gitmodulesParse
receive.fsck.gitmodulesPath
receive.fsck.gitmodulesSymlink
receive.fsck.gitmodulesUpdate
receive.fsck.gitmodulesUrl
receive.fsck.hasDot
receive.fsck.hasDotdot
receive.fsck.hasDotgit
receive.fsck.mailmapSymlink
receive.fsck.missingAuthor
receive.fsck.missingCommitter
receive.fsck.missingEmail
receive.fsck.missingNameBeforeEmail
receive.fsck.missingObject
receive.fsck.missingSpaceBeforeDate
receive.fsck.missingSpaceBeforeEmail
receive.fsck.missingTag
receive.fsck.missingTagEntry
receive.fsck.missingTaggerEntry
receive.fsck.missingTree
receive.fsck.missingType
receive.fsck.missingTypeEntry
receive.fsck.multipleAuthors
receive.fsck.nulInCommit
receive.fsck.nulInHeader
receive.fsck.nullSha1
receive.fsck.skipList
receive.fsck.treeNotSorted
receive.fsck.unknownType
receive.fsck.unterminatedHeader
receive.fsck.zeroPaddedDate
receive.fsck.zeroPaddedFilemode
receive.fsckObjects
receive.hideRefs
receive.keepAlive
receive.maxInputSize
receive.procReceiveRefs
receive.shallowUpdate
receive.unpackLimit
receive.updateServerInfo
remote.
remote.pushDefault
remotes.
repack.cruftDepth
repack.cruftThreads
repack.cruftWindow
repack.cruftWindowMemory
repack.packKeptObjects
repack.updateServerInfo
repack.useDeltaBaseOffset
repack.useDeltaIslands
repack.writeBitmaps
rerere.autoUpdate
rerere.enabled
revert.reference
safe.bareRepository
safe.directory
sendemail.
sendemail.aliasFileType
sendemail.aliasesFile
sendemail.annotate
sendemail.bcc
sendemail.cc
sendemail.ccCmd
sendemail.chainReplyTo
sendemail.confirm
sendemail.envelopeSender
sendemail.forbidSendmailVariables
sendemail.from
sendemail.identity
sendemail.multiEdit
sendemail.signedoffbycc
sendemail.smtpBatchSize
sendemail.smtpDomain
sendemail.smtpEncryption
sendemail.smtpPass
sendemail.smtpReloginDelay
sendemail.smtpServer
sendemail.smtpServerOption
sendemail.smtpServerPort
sendemail.smtpUser
sendemail.smtpsslcertpath
sendemail.suppressFrom
sendemail.suppresscc
sendemail.thread
sendemail.to
sendemail.tocmd
sendemail.transferEncoding
sendemail.validate
sendemail.xmailer
sequence.editor
showBranch.default
sparse.expectFilesOutsideOfPatterns
splitIndex.maxPercentChange
splitIndex.sharedIndexExpire
ssh.variant
stash.showIncludeUntracked
stash.showPatch
stash.showStat
status.aheadBehind
status.branch
status.displayCommentPrefix
status.relativePaths
status.renameLimit
status.renames
status.short
status.showStash
status.showUntrackedFiles
status.submoduleSummary
submodule.
submodule.active
submodule.alternateErrorStrategy
submodule.alternateLocation
submodule.fetchJobs
submodule.propagateBranches
submodule.recurse
tag.forceSignAnnotated
tag.gpgSign
tag.sort
tar.umask
trace2.configParams
trace2.destinationDebug
trace2.envVars
trace2.eventBrief
trace2.eventNesting
trace2.eventTarget
trace2.maxFiles
trace2.normalBrief
trace2.normalTarget
trace2.perfBrief
trace2.perfTarget
transfer.advertiseSID
transfer.bundleURI
transfer.credentialsInUrl
transfer.fsckObjects
transfer.hideRefs
transfer.unpackLimit
uploadarchive.allowUnreachable
uploadpack.allowAnySHA1InWant
uploadpack.allowFilter
uploadpack.allowReachableSHA1InWant
uploadpack.allowRefInWant
uploadpack.allowTipSHA1InWant
uploadpack.hideRefs
uploadpack.keepAlive
uploadpack.packObjectsHook
uploadpackfilter.
uploadpackfilter.allow
uploadpackfilter.tree.maxDepth
url.
user.email
user.name
user.signingKey
user.useConfigOnly
versionsort.suffix
web.browser
worktree.guessRemote
fatal: options '--config-for-completion' and '--info' cannot be used together
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
fatal: options '--config-for-completion' and '--man' cannot be used together
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
fatal: options '--config-for-completion' and '--web' cannot be used together
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
ok 11 - invalid usage of '--config-for-completion' with [-i|-m|-w]
expecting success of 0012.12 'invalid usage of '--config-for-completion' with --no-external-commands':
test_expect_code 129 git help $opt --no-external-commands
fatal: the '--no-[external-commands|aliases]' options can only be used with '--all'
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
ok 12 - invalid usage of '--config-for-completion' with --no-external-commands
expecting success of 0012.13 'invalid usage of '--config-for-completion' with --no-aliases':
test_expect_code 129 git help $opt --no-external-commands
fatal: the '--no-[external-commands|aliases]' options can only be used with '--all'
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
ok 13 - invalid usage of '--config-for-completion' with --no-aliases
expecting success of 0012.14 'invalid usage of '--config-sections-for-completion' with [-i|-m|-w]':
git help $opt &&
test_expect_code 129 git help $opt -i &&
test_expect_code 129 git help $opt -m &&
test_expect_code 129 git help $opt -w
add
advice
alias
am
apply
author
blame
branch
browser
bundle
checkout
clean
clone
color
column
commit
commitGraph
committer
completion
core
credential
credentialCache
credentialStore
diff
difftool
extensions
fastimport
feature
fetch
filter
format
fsck
fsmonitor
gc
gitcvs
gitweb
gpg
grep
gui
guitool
help
http
i18n
imap
include
includeIf
index
init
instaweb
interactive
log
lsrefs
mailinfo
mailmap
maintenance
man
merge
mergetool
notes
pack
pager
pretty
protocol
pull
push
rebase
receive
remote
remotes
repack
rerere
revert
safe
sendemail
sequence
showBranch
sparse
splitIndex
ssh
stash
status
submodule
tag
tar
trace2
transfer
uploadarchive
uploadpack
uploadpackfilter
url
user
versionsort
web
worktree
fatal: options '--config-sections-for-completion' and '--info' cannot be used together
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
fatal: options '--config-sections-for-completion' and '--man' cannot be used together
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
fatal: options '--config-sections-for-completion' and '--web' cannot be used together
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
ok 14 - invalid usage of '--config-sections-for-completion' with [-i|-m|-w]
expecting success of 0012.15 'invalid usage of '--config-sections-for-completion' with --no-external-commands':
test_expect_code 129 git help $opt --no-external-commands
fatal: the '--no-[external-commands|aliases]' options can only be used with '--all'
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
ok 15 - invalid usage of '--config-sections-for-completion' with --no-external-commands
expecting success of 0012.16 'invalid usage of '--config-sections-for-completion' with --no-aliases':
test_expect_code 129 git help $opt --no-external-commands
fatal: the '--no-[external-commands|aliases]' options can only be used with '--all'
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
or: git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]
or: git help [-g|--guides]
or: git help [-c|--config]
or: git help [--user-interfaces]
or: git help [--developer-interfaces]
-a, --all print all available commands
--external-commands show external commands in --all
--aliases show aliases in --all
-m, --man show man page
-w, --web show manual in web browser
-i, --info show info page
-v, --verbose print command description
-g, --guides print list of useful guides
--user-interfaces print list of user-facing repository, command and file interfaces
--developer-interfaces
print list of file formats, protocols and other developer interfaces
-c, --config print all configuration variable names
ok 16 - invalid usage of '--config-sections-for-completion' with --no-aliases
expecting success of 0012.17 'works for commands and guides by default':
configure_help &&
git help status &&
echo "test://html/git-status.html" >expect &&
test_cmp expect test-browser.log &&
git help revisions &&
echo "test://html/gitrevisions.html" >expect &&
test_cmp expect test-browser.log
ok 17 - works for commands and guides by default
expecting success of 0012.18 '--exclude-guides does not work for guides':
>test-browser.log &&
test_must_fail git help --exclude-guides revisions &&
test_must_be_empty test-browser.log
git: 'revisions' is not a git command. See 'git --help'.
ok 18 - --exclude-guides does not work for guides
expecting success of 0012.19 '--help does not work for guides':
cat <<-EOF >expect &&
git: 'revisions' is not a git command. See 'git --help'.
EOF
test_must_fail git revisions --help 2>actual &&
test_cmp expect actual
ok 19 - --help does not work for guides
expecting success of 0012.20 'git help':
git help >help.output &&
test_i18ngrep "^ clone " help.output &&
test_i18ngrep "^ add " help.output &&
test_i18ngrep "^ log " help.output &&
test_i18ngrep "^ commit " help.output &&
test_i18ngrep "^ fetch " help.output
clone Clone a repository into a new directory
add Add file contents to the index
log Show commit logs
commit Record changes to the repository
fetch Download objects and refs from another repository
ok 20 - git help
expecting success of 0012.21 'git help -g':
git help -g >help.output &&
test_i18ngrep "^ everyday " help.output &&
test_i18ngrep "^ tutorial " help.output
everyday A useful minimum set of commands for Everyday Git
tutorial A tutorial introduction to Git
ok 21 - git help -g
expecting success of 0012.22 'git help fails for non-existing html pages':
configure_help &&
mkdir html-empty &&
test_must_fail git -c help.htmlpath=html-empty help status &&
test_must_be_empty test-browser.log
fatal: 'html-empty/git-status.html': documentation file not found.
ok 22 - git help fails for non-existing html pages
expecting success of 0012.23 'git help succeeds without git.html':
configure_help &&
mkdir html-with-docs &&
touch html-with-docs/git-status.html &&
git -c help.htmlpath=html-with-docs help status &&
echo "html-with-docs/git-status.html" >expect &&
test_cmp expect test-browser.log
ok 23 - git help succeeds without git.html
expecting success of 0012.24 'git help --user-interfaces':
git help --user-interfaces >help.output &&
grep "^ attributes " help.output &&
grep "^ mailmap " help.output
attributes Defining attributes per path
mailmap Map author/committer names and/or E-Mail addresses
ok 24 - git help --user-interfaces
expecting success of 0012.25 'git help -c':
git help -c >help.output &&
cat >expect <<-\EOF &&
'git help config' for more information
EOF
grep -v -E \
-e "^[^.]+\.[^.]+$" \
-e "^[^.]+\.[^.]+\.[^.]+$" \
help.output >actual &&
test_cmp expect actual
ok 25 - git help -c
expecting success of 0012.26 'git help --config-for-completion':
git help -c >human &&
grep -E \
-e "^[^.]+\.[^.]+$" \
-e "^[^.]+\.[^.]+\.[^.]+$" human |
sed -e "s/\*.*//" -e "s/<.*//" |
sort -u >human.munged &&
git help --config-for-completion >vars &&
test_cmp human.munged vars
ok 26 - git help --config-for-completion
expecting success of 0012.27 'git help --config-sections-for-completion':
git help -c >human &&
grep -E \
-e "^[^.]+\.[^.]+$" \
-e "^[^.]+\.[^.]+\.[^.]+$" human |
sed -e "s/\..*//" |
sort -u >human.munged &&
git help --config-sections-for-completion >sections &&
test_cmp human.munged sections
ok 27 - git help --config-sections-for-completion
expecting success of 0012.28 ''git' section spacing':
test_section_spacing_trailer git help <<-\EOF &&
usage: git [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>]
These are common Git commands used in various situations:
start a working area (see also: git help tutorial)
work on the current change (see also: git help everyday)
examine the history and state (see also: git help revisions)
grow, mark and tweak your common history
collaborate (see also: git help workflows)
EOF
test_cmp expect actual
ok 28 - 'git' section spacing
expecting success of 0012.29 ''git help' section spacing':
test_section_spacing_trailer git help <<-\EOF &&
usage: git [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>]
These are common Git commands used in various situations:
start a working area (see also: git help tutorial)
work on the current change (see also: git help everyday)
examine the history and state (see also: git help revisions)
grow, mark and tweak your common history
collaborate (see also: git help workflows)
EOF
test_cmp expect actual
ok 29 - 'git help' section spacing
expecting success of 0012.30 ''git help -a' section spacing':
test_section_spacing \
git help -a --no-external-commands --no-aliases <<-\EOF &&
See 'git help <command>' to read about a specific subcommand
Main Porcelain Commands
Ancillary Commands / Manipulators
Ancillary Commands / Interrogators
Interacting with Others
Low-level Commands / Manipulators
Low-level Commands / Interrogators
Low-level Commands / Syncing Repositories
Low-level Commands / Internal Helpers
User-facing repository, command and file interfaces
Developer-facing file formats, protocols and other interfaces
EOF
test_cmp expect actual
ok 30 - 'git help -a' section spacing
expecting success of 0012.31 ''git help -g' section spacing':
test_section_spacing_trailer git help -g <<-\EOF &&
The Git concept guides are:
EOF
test_cmp expect actual
ok 31 - 'git help -g' section spacing
expecting success of 0012.32 'generate builtin list':
mkdir -p sub &&
git --list-cmds=builtins >builtins
ok 32 - generate builtin list
expecting success of 0012.33 'add can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git add [<options>] [--] <pathspec>...
ok 33 - add can handle -h
expecting success of 0012.34 'am can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git am [<options>] [(<mbox> | <Maildir>)...]
ok 34 - am can handle -h
expecting success of 0012.35 'annotate can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git annotate [<options>] [<rev-opts>] [<rev>] [--] <file>
ok 35 - annotate can handle -h
expecting success of 0012.36 'apply can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git apply [<options>] [<patch>...]
ok 36 - apply can handle -h
expecting success of 0012.37 'archive can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git archive [<options>] <tree-ish> [<path>...]
ok 37 - archive can handle -h
expecting success of 0012.38 'bisect can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git bisect start [--term-{new,bad}=<term> --term-{old,good}=<term>] [--no-checkout] [--first-parent] [<bad> [<good>...]] [--] [<pathspec>...]
ok 38 - bisect can handle -h
expecting success of 0012.39 'blame can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git blame [<options>] [<rev-opts>] [<rev>] [--] <file>
ok 39 - blame can handle -h
expecting success of 0012.40 'branch can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git branch [<options>] [-r | -a] [--merged] [--no-merged]
ok 40 - branch can handle -h
expecting success of 0012.41 'bugreport can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git bugreport [(-o | --output-directory) <path>] [(-s | --suffix) <format>]
ok 41 - bugreport can handle -h
expecting success of 0012.42 'bundle can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git bundle create [-q | --quiet | --progress | --all-progress] [--all-progress-implied]
ok 42 - bundle can handle -h
expecting success of 0012.43 'cat-file can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git cat-file <type> <object>
ok 43 - cat-file can handle -h
expecting success of 0012.44 'check-attr can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git check-attr [--source <tree-ish>] [-a | --all | <attr>...] [--] <pathname>...
ok 44 - check-attr can handle -h
expecting success of 0012.45 'check-ignore can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git check-ignore [<options>] <pathname>...
ok 45 - check-ignore can handle -h
expecting success of 0012.46 'check-mailmap can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git check-mailmap [<options>] <contact>...
ok 46 - check-mailmap can handle -h
expecting success of 0012.47 'check-ref-format can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git check-ref-format [--normalize] [<options>] <refname>
ok 47 - check-ref-format can handle -h
expecting success of 0012.48 'checkout can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git checkout [<options>] <branch>
ok 48 - checkout can handle -h
expecting success of 0012.49 'checkout--worker can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git checkout--worker [<options>]
ok 49 - checkout--worker can handle -h
expecting success of 0012.50 'checkout-index can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git checkout-index [<options>] [--] [<file>...]
ok 50 - checkout-index can handle -h
expecting success of 0012.51 'cherry can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git cherry [-v] [<upstream> [<head> [<limit>]]]
ok 51 - cherry can handle -h
expecting success of 0012.52 'cherry-pick can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git cherry-pick [--edit] [-n] [-m <parent-number>] [-s] [-x] [--ff]
ok 52 - cherry-pick can handle -h
expecting success of 0012.53 'clean can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] [<pathspec>...]
ok 53 - clean can handle -h
expecting success of 0012.54 'clone can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git clone [<options>] [--] <repo> [<dir>]
ok 54 - clone can handle -h
expecting success of 0012.55 'column can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git column [<options>]
ok 55 - column can handle -h
expecting success of 0012.56 'commit can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git commit [-a | --interactive | --patch] [-s] [-v] [-u<mode>] [--amend]
ok 56 - commit can handle -h
expecting success of 0012.57 'commit-graph can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git commit-graph verify [--object-dir <dir>] [--shallow] [--[no-]progress]
ok 57 - commit-graph can handle -h
expecting success of 0012.58 'commit-tree can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git commit-tree <tree> [(-p <parent>)...]
ok 58 - commit-tree can handle -h
expecting success of 0012.59 'config can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git config [<options>]
ok 59 - config can handle -h
expecting success of 0012.60 'count-objects can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git count-objects [-v] [-H | --human-readable]
ok 60 - count-objects can handle -h
expecting success of 0012.61 'credential can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git credential (fill|approve|reject)
ok 61 - credential can handle -h
expecting success of 0012.62 'credential-cache can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git credential-cache [<options>] <action>
ok 62 - credential-cache can handle -h
expecting success of 0012.63 'credential-cache--daemon can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git credential-cache--daemon [--debug] <socket-path>
ok 63 - credential-cache--daemon can handle -h
expecting success of 0012.64 'credential-store can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git credential-store [<options>] <action>
ok 64 - credential-store can handle -h
expecting success of 0012.65 'describe can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git describe [--all] [--tags] [--contains] [--abbrev=<n>] [<commit-ish>...]
ok 65 - describe can handle -h
expecting success of 0012.66 'diagnose can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git diagnose [(-o | --output-directory) <path>] [(-s | --suffix) <format>]
ok 66 - diagnose can handle -h
expecting success of 0012.67 'diff can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git diff --no-index [<options>] <path> <path>
ok 67 - diff can handle -h
expecting success of 0012.68 'diff-files can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git diff-files [-q] [-0 | -1 | -2 | -3 | -c | --cc] [<common-diff-options>] [<path>...]
ok 68 - diff-files can handle -h
expecting success of 0012.69 'diff-index can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git diff-index [-m] [--cached] [--merge-base] [<common-diff-options>] <tree-ish> [<path>...]
ok 69 - diff-index can handle -h
expecting success of 0012.70 'diff-tree can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git diff-tree [--stdin] [-m] [-s] [-v] [--no-commit-id] [--pretty]
ok 70 - diff-tree can handle -h
expecting success of 0012.71 'difftool can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git difftool [<options>] [<commit> [<commit>]] [--] [<path>...]
ok 71 - difftool can handle -h
expecting success of 0012.72 'fast-export can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git fast-export [<rev-list-opts>]
ok 72 - fast-export can handle -h
expecting success of 0012.73 'fast-import can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git fast-import [--date-format=<f>] [--max-pack-size=<n>] [--big-file-threshold=<n>] [--depth=<n>] [--active-branches=<n>] [--export-marks=<marks.file>]
ok 73 - fast-import can handle -h
expecting success of 0012.74 'fetch can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git fetch [<options>] [<repository> [<refspec>...]]
ok 74 - fetch can handle -h
expecting success of 0012.75 'fetch-pack can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git fetch-pack [--all] [--stdin] [--quiet | -q] [--keep | -k] [--thin] [--include-tag] [--upload-pack=<git-upload-pack>] [--depth=<n>] [--no-progress] [--diag-url] [-v] [<host>:]<directory> [<refs>...]
ok 75 - fetch-pack can handle -h
expecting success of 0012.76 'fmt-merge-msg can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git fmt-merge-msg [-m <message>] [--log[=<n>] | --no-log] [--file <file>]
ok 76 - fmt-merge-msg can handle -h
expecting success of 0012.77 'for-each-ref can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git for-each-ref [<options>] [<pattern>]
ok 77 - for-each-ref can handle -h
expecting success of 0012.78 'for-each-repo can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git for-each-repo --config=<config> [--] <arguments>
ok 78 - for-each-repo can handle -h
expecting success of 0012.79 'format-patch can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git format-patch [<options>] [<since> | <revision-range>]
ok 79 - format-patch can handle -h
expecting success of 0012.80 'fsck can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git fsck [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]
ok 80 - fsck can handle -h
expecting success of 0012.81 'fsck-objects can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git fsck [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]
ok 81 - fsck-objects can handle -h
expecting success of 0012.82 'fsmonitor--daemon can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git fsmonitor--daemon start [<options>]
ok 82 - fsmonitor--daemon can handle -h
expecting success of 0012.83 'gc can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git gc [<options>]
ok 83 - gc can handle -h
expecting success of 0012.84 'get-tar-commit-id can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git get-tar-commit-id
ok 84 - get-tar-commit-id can handle -h
expecting success of 0012.85 'grep can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]
ok 85 - grep can handle -h
expecting success of 0012.86 'hash-object can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git hash-object [-t <type>] [-w] [--path=<file> | --no-filters]
ok 86 - hash-object can handle -h
expecting success of 0012.87 'help can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]
ok 87 - help can handle -h
expecting success of 0012.88 'hook can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git hook run [--ignore-missing] [--to-stdin=<path>] <hook-name> [-- <hook-args>]
ok 88 - hook can handle -h
expecting success of 0012.89 'index-pack can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git index-pack [-v] [-o <index-file>] [--keep | --keep=<msg>] [--[no-]rev-index] [--verify] [--strict] (<pack-file> | --stdin [--fix-thin] [<pack-file>])
ok 89 - index-pack can handle -h
expecting success of 0012.90 'init can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git init [-q | --quiet] [--bare] [--template=<template-directory>]
ok 90 - init can handle -h
expecting success of 0012.91 'init-db can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git init [-q | --quiet] [--bare] [--template=<template-directory>]
ok 91 - init-db can handle -h
expecting success of 0012.92 'interpret-trailers can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git interpret-trailers [--in-place] [--trim-empty]
ok 92 - interpret-trailers can handle -h
expecting success of 0012.93 'log can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git log [<options>] [<revision-range>] [[--] <path>...]
ok 93 - log can handle -h
expecting success of 0012.94 'ls-files can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git ls-files [<options>] [<file>...]
ok 94 - ls-files can handle -h
expecting success of 0012.95 'ls-remote can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]
ok 95 - ls-remote can handle -h
expecting success of 0012.96 'ls-tree can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git ls-tree [<options>] <tree-ish> [<path>...]
ok 96 - ls-tree can handle -h
expecting success of 0012.97 'mailinfo can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git mailinfo [<options>] <msg> <patch> < mail >info
ok 97 - mailinfo can handle -h
expecting success of 0012.98 'mailsplit can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git mailsplit [-d<prec>] [-f<n>] [-b] [--keep-cr] -o<directory> [(<mbox>|<Maildir>)...]
ok 98 - mailsplit can handle -h
expecting success of 0012.99 'maintenance can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git maintenance <subcommand> [<options>]
ok 99 - maintenance can handle -h
expecting success of 0012.100 'merge can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git merge [<options>] [<commit>...]
ok 100 - merge can handle -h
expecting success of 0012.101 'merge-base can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git merge-base [-a | --all] <commit> <commit>...
ok 101 - merge-base can handle -h
expecting success of 0012.102 'merge-file can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git merge-file [<options>] [-L <name1> [-L <orig> [-L <name2>]]] <file1> <orig-file> <file2>
ok 102 - merge-file can handle -h
expecting success of 0012.103 'merge-index can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git merge-index [-o] [-q] <merge-program> (-a | [--] [<filename>...])
ok 103 - merge-index can handle -h
expecting success of 0012.104 'merge-ours can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git merge-ours <base>... -- HEAD <remote>...
ok 104 - merge-ours can handle -h
expecting success of 0012.105 'merge-recursive can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git merge-recursive <base>... -- <head> <remote> ...
ok 105 - merge-recursive can handle -h
expecting success of 0012.106 'merge-recursive-ours can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git merge-recursive-ours <base>... -- <head> <remote> ...
ok 106 - merge-recursive-ours can handle -h
expecting success of 0012.107 'merge-recursive-theirs can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git merge-recursive-theirs <base>... -- <head> <remote> ...
ok 107 - merge-recursive-theirs can handle -h
expecting success of 0012.108 'merge-subtree can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git merge-subtree <base>... -- <head> <remote> ...
ok 108 - merge-subtree can handle -h
expecting success of 0012.109 'merge-tree can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git merge-tree [--write-tree] [<options>] <branch1> <branch2>
ok 109 - merge-tree can handle -h
expecting success of 0012.110 'mktag can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git mktag
ok 110 - mktag can handle -h
expecting success of 0012.111 'mktree can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git mktree [-z] [--missing] [--batch]
ok 111 - mktree can handle -h
expecting success of 0012.112 'multi-pack-index can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git multi-pack-index [<options>] write [--preferred-pack=<pack>][--refs-snapshot=<path>]
ok 112 - multi-pack-index can handle -h
expecting success of 0012.113 'mv can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git mv [<options>] <source>... <destination>
ok 113 - mv can handle -h
expecting success of 0012.114 'name-rev can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git name-rev [<options>] <commit>...
ok 114 - name-rev can handle -h
expecting success of 0012.115 'notes can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git notes [--ref <notes-ref>] [list [<object>]]
ok 115 - notes can handle -h
expecting success of 0012.116 'pack-objects can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git pack-objects --stdout [<options>] [< <ref-list> | < <object-list>]
ok 116 - pack-objects can handle -h
expecting success of 0012.117 'pack-redundant can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git pack-redundant [--verbose] [--alt-odb] (--all | <pack-filename>...)
ok 117 - pack-redundant can handle -h
expecting success of 0012.118 'pack-refs can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git pack-refs [--all] [--no-prune]
ok 118 - pack-refs can handle -h
expecting success of 0012.119 'patch-id can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git patch-id [--stable | --unstable | --verbatim]
ok 119 - patch-id can handle -h
expecting success of 0012.120 'pickaxe can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git blame [<options>] [<rev-opts>] [<rev>] [--] <file>
ok 120 - pickaxe can handle -h
expecting success of 0012.121 'prune can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git prune [-n] [-v] [--progress] [--expire <time>] [--] [<head>...]
ok 121 - prune can handle -h
expecting success of 0012.122 'prune-packed can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git prune-packed [-n | --dry-run] [-q | --quiet]
ok 122 - prune-packed can handle -h
expecting success of 0012.123 'pull can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git pull [<options>] [<repository> [<refspec>...]]
ok 123 - pull can handle -h
expecting success of 0012.124 'push can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git push [<options>] [<repository> [<refspec>...]]
ok 124 - push can handle -h
expecting success of 0012.125 'range-diff can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git range-diff [<options>] <old-base>..<old-tip> <new-base>..<new-tip>
ok 125 - range-diff can handle -h
expecting success of 0012.126 'read-tree can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git read-tree [(-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>)
ok 126 - read-tree can handle -h
expecting success of 0012.127 'rebase can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] [<upstream> [<branch>]]
ok 127 - rebase can handle -h
expecting success of 0012.128 'receive-pack can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git receive-pack <git-dir>
ok 128 - receive-pack can handle -h
expecting success of 0012.129 'reflog can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git reflog [show] [<log-options>] [<ref>]
ok 129 - reflog can handle -h
expecting success of 0012.130 'remote can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git remote [-v | --verbose]
ok 130 - remote can handle -h
expecting success of 0012.131 'remote-ext can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git remote-ext <remote> <url>
ok 131 - remote-ext can handle -h
expecting success of 0012.132 'remote-fd can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git remote-fd <remote> <url>
ok 132 - remote-fd can handle -h
expecting success of 0012.133 'repack can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git repack [<options>]
ok 133 - repack can handle -h
expecting success of 0012.134 'replace can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git replace [-f] <object> <replacement>
ok 134 - replace can handle -h
expecting success of 0012.135 'rerere can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git rerere [clear | forget <pathspec>... | diff | status | remaining | gc]
ok 135 - rerere can handle -h
expecting success of 0012.136 'reset can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]
ok 136 - reset can handle -h
expecting success of 0012.137 'restore can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git restore [<options>] [--source=<branch>] <file>...
ok 137 - restore can handle -h
expecting success of 0012.138 'rev-list can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git rev-list [<options>] <commit>... [--] [<path>...]
--disk-usage[=human]
ok 138 - rev-list can handle -h
expecting success of 0012.139 'rev-parse can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git rev-parse --parseopt [<options>] -- [<args>...]
Run "git rev-parse --parseopt -h" for more information on the first usage.
ok 139 - rev-parse can handle -h
expecting success of 0012.140 'revert can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git revert [--[no-]edit] [-n] [-m <parent-number>] [-s] [-S[<keyid>]] <commit>...
ok 140 - revert can handle -h
expecting success of 0012.141 'rm can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git rm [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch]
ok 141 - rm can handle -h
expecting success of 0012.142 'send-pack can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git send-pack [--mirror] [--dry-run] [--force]
ok 142 - send-pack can handle -h
expecting success of 0012.143 'shortlog can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git shortlog [<options>] [<revision-range>] [[--] <path>...]
ok 143 - shortlog can handle -h
expecting success of 0012.144 'show can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git log [<options>] [<revision-range>] [[--] <path>...]
ok 144 - show can handle -h
expecting success of 0012.145 'show-branch can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]
ok 145 - show-branch can handle -h
expecting success of 0012.146 'show-index can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git show-index [--object-format=<hash-algorithm>]
ok 146 - show-index can handle -h
expecting success of 0012.147 'show-ref can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference]
ok 147 - show-ref can handle -h
expecting success of 0012.148 'sparse-checkout can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git sparse-checkout (init | list | set | add | reapply | disable) [<options>]
ok 148 - sparse-checkout can handle -h
expecting success of 0012.149 'stage can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git add [<options>] [--] <pathspec>...
ok 149 - stage can handle -h
expecting success of 0012.150 'stash can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git stash list [<log-options>]
ok 150 - stash can handle -h
expecting success of 0012.151 'status can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git status [<options>] [--] [<pathspec>...]
ok 151 - status can handle -h
expecting success of 0012.152 'stripspace can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git stripspace [-s | --strip-comments]
ok 152 - stripspace can handle -h
expecting success of 0012.153 'submodule--helper can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git submodule--helper <command>
ok 153 - submodule--helper can handle -h
expecting success of 0012.154 'switch can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git switch [<options>] [<branch>]
ok 154 - switch can handle -h
expecting success of 0012.155 'symbolic-ref can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git symbolic-ref [-m <reason>] <name> <ref>
ok 155 - symbolic-ref can handle -h
expecting success of 0012.156 'tag can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>] [-e]
ok 156 - tag can handle -h
expecting success of 0012.157 'unpack-file can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git unpack-file <blob>
ok 157 - unpack-file can handle -h
expecting success of 0012.158 'unpack-objects can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git unpack-objects [-n] [-q] [-r] [--strict]
ok 158 - unpack-objects can handle -h
expecting success of 0012.159 'update-index can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git update-index [<options>] [--] [<file>...]
ok 159 - update-index can handle -h
expecting success of 0012.160 'update-ref can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git update-ref [<options>] -d <refname> [<old-val>]
ok 160 - update-ref can handle -h
expecting success of 0012.161 'update-server-info can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git update-server-info [-f | --force]
ok 161 - update-server-info can handle -h
expecting success of 0012.162 'upload-archive can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git upload-archive <repository>
ok 162 - upload-archive can handle -h
expecting success of 0012.163 'upload-archive--writer can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git upload-archive <repository>
ok 163 - upload-archive--writer can handle -h
expecting success of 0012.164 'upload-pack can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git-upload-pack [--[no-]strict] [--timeout=<n>] [--stateless-rpc]
ok 164 - upload-pack can handle -h
expecting success of 0012.165 'var can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git var (-l | <variable>)
ok 165 - var can handle -h
expecting success of 0012.166 'verify-commit can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git verify-commit [-v | --verbose] [--raw] <commit>...
ok 166 - verify-commit can handle -h
expecting success of 0012.167 'verify-pack can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git verify-pack [-v | --verbose] [-s | --stat-only] [--] <pack>.idx...
ok 167 - verify-pack can handle -h
expecting success of 0012.168 'verify-tag can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git verify-tag [-v | --verbose] [--format=<format>] [--raw] <tag>...
ok 168 - verify-tag can handle -h
expecting success of 0012.169 'version can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git version [--build-options]
ok 169 - version can handle -h
expecting success of 0012.170 'whatchanged can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git log [<options>] [<revision-range>] [[--] <path>...]
ok 170 - whatchanged can handle -h
expecting success of 0012.171 'worktree can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git worktree add [-f] [--detach] [--checkout] [--lock [--reason <string>]]
ok 171 - worktree can handle -h
expecting success of 0012.172 'write-tree can handle -h':
(
GIT_CEILING_DIRECTORIES=$(pwd) &&
export GIT_CEILING_DIRECTORIES &&
test_expect_code 129 git -C sub $builtin -h >output 2>&1
) &&
test_i18ngrep usage output
usage: git write-tree [--missing-ok] [--prefix=<prefix>/]
ok 172 - write-tree can handle -h
# passed all 172 test(s)
1..172
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0013-sha1dc.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0013-sha1dc/.git/
checking prerequisite: SHA1_IS_SHA1DC
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SHA1_IS_SHA1DC" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-SHA1_IS_SHA1DC" &&test-tool sha1-is-sha1dc
)
prerequisite SHA1_IS_SHA1DC ok
expecting success of 0013.1 'test-sha1 detects shattered pdf':
test_must_fail test-tool sha1 <"$TEST_DATA/shattered-1.pdf" 2>err &&
test_i18ngrep collision err &&
grep 38762cf7f55934b34d179ae6a4c80cadccbb7f0a err
fatal: SHA-1 appears to be part of a collision attack: 38762cf7f55934b34d179ae6a4c80cadccbb7f0a
fatal: SHA-1 appears to be part of a collision attack: 38762cf7f55934b34d179ae6a4c80cadccbb7f0a
ok 1 - test-sha1 detects shattered pdf
# passed all 1 test(s)
1..1
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0014-alias.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0014-alias/.git/
expecting success of 0014.1 'nested aliases - internal execution':
git config alias.nested-internal-1 nested-internal-2 &&
git config alias.nested-internal-2 status &&
git nested-internal-1 >output &&
test_i18ngrep "^On branch " output
On branch master
ok 1 - nested aliases - internal execution
expecting success of 0014.2 'nested aliases - mixed execution':
git config alias.nested-external-1 nested-external-2 &&
git config alias.nested-external-2 "!git nested-external-3" &&
git config alias.nested-external-3 status &&
git nested-external-1 >output &&
test_i18ngrep "^On branch " output
On branch master
ok 2 - nested aliases - mixed execution
expecting success of 0014.3 'looping aliases - internal execution':
git config alias.loop-internal-1 loop-internal-2 &&
git config alias.loop-internal-2 loop-internal-3 &&
git config alias.loop-internal-3 loop-internal-2 &&
test_must_fail git loop-internal-1 2>output &&
test_i18ngrep "^fatal: alias loop detected: expansion of" output
fatal: alias loop detected: expansion of 'loop-internal-1' does not terminate:
ok 3 - looping aliases - internal execution
expecting success of 0014.4 'run-command formats empty args properly':
test_must_fail env GIT_TRACE=1 git frotz a "" b " " c 2>actual.raw &&
sed -ne "/run_command:/s/.*trace: run_command: //p" actual.raw >actual &&
echo "git-frotz a '' b ' ' c" >expect &&
test_cmp expect actual
ok 4 - run-command formats empty args properly
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0015-hash.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0015-hash/.git/
expecting success of 0015.1 'test basic SHA-1 hash values':
test-tool sha1 </dev/null >actual &&
grep da39a3ee5e6b4b0d3255bfef95601890afd80709 actual &&
printf "a" | test-tool sha1 >actual &&
grep 86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 actual &&
printf "abc" | test-tool sha1 >actual &&
grep a9993e364706816aba3e25717850c26c9cd0d89d actual &&
printf "message digest" | test-tool sha1 >actual &&
grep c12252ceda8be8994d5fa0290a47231c1d16aae3 actual &&
printf "abcdefghijklmnopqrstuvwxyz" | test-tool sha1 >actual &&
grep 32d10c7b8cf96570ca04ce37f2a19d84240d3a89 actual &&
perl -e "$| = 1; print q{aaaaaaaaaa} for 1..100000;" |
test-tool sha1 >actual &&
grep 34aa973cd4c4daa4f61eeb2bdbad27316534016f actual &&
printf "blob 0\0" | test-tool sha1 >actual &&
grep e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 actual &&
printf "blob 3\0abc" | test-tool sha1 >actual &&
grep f2ba8f84ab5c1bce84a7b441cb1959cfc7093b7f actual &&
printf "tree 0\0" | test-tool sha1 >actual &&
grep 4b825dc642cb6eb9a060e54bf8d69288fbee4904 actual
da39a3ee5e6b4b0d3255bfef95601890afd80709
86f7e437faa5a7fce15d1ddcb9eaeaea377667b8
a9993e364706816aba3e25717850c26c9cd0d89d
c12252ceda8be8994d5fa0290a47231c1d16aae3
32d10c7b8cf96570ca04ce37f2a19d84240d3a89
34aa973cd4c4daa4f61eeb2bdbad27316534016f
e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
f2ba8f84ab5c1bce84a7b441cb1959cfc7093b7f
4b825dc642cb6eb9a060e54bf8d69288fbee4904
ok 1 - test basic SHA-1 hash values
expecting success of 0015.2 'test basic SHA-256 hash values':
test-tool sha256 </dev/null >actual &&
grep e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 actual &&
printf "a" | test-tool sha256 >actual &&
grep ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb actual &&
printf "abc" | test-tool sha256 >actual &&
grep ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad actual &&
printf "message digest" | test-tool sha256 >actual &&
grep f7846f55cf23e14eebeab5b4e1550cad5b509e3348fbc4efa3a1413d393cb650 actual &&
printf "abcdefghijklmnopqrstuvwxyz" | test-tool sha256 >actual &&
grep 71c480df93d6ae2f1efad1447c66c9525e316218cf51fc8d9ed832f2daf18b73 actual &&
# Try to exercise the chunking code by turning autoflush on.
perl -e "$| = 1; print q{aaaaaaaaaa} for 1..100000;" |
test-tool sha256 >actual &&
grep cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0 actual &&
perl -e "$| = 1; print q{abcdefghijklmnopqrstuvwxyz} for 1..100000;" |
test-tool sha256 >actual &&
grep e406ba321ca712ad35a698bf0af8d61fc4dc40eca6bdcea4697962724ccbde35 actual &&
printf "blob 0\0" | test-tool sha256 >actual &&
grep 473a0f4c3be8a93681a267e3b1e9a7dcda1185436fe141f7749120a303721813 actual &&
printf "blob 3\0abc" | test-tool sha256 >actual &&
grep c1cf6e465077930e88dc5136641d402f72a229ddd996f627d60e9639eaba35a6 actual &&
printf "tree 0\0" | test-tool sha256 >actual &&
grep 6ef19b41225c5369f1c104d45d8d85efa9b057b53b14b4b9b939dd74decc5321 actual
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
f7846f55cf23e14eebeab5b4e1550cad5b509e3348fbc4efa3a1413d393cb650
71c480df93d6ae2f1efad1447c66c9525e316218cf51fc8d9ed832f2daf18b73
cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0
e406ba321ca712ad35a698bf0af8d61fc4dc40eca6bdcea4697962724ccbde35
473a0f4c3be8a93681a267e3b1e9a7dcda1185436fe141f7749120a303721813
c1cf6e465077930e88dc5136641d402f72a229ddd996f627d60e9639eaba35a6
6ef19b41225c5369f1c104d45d8d85efa9b057b53b14b4b9b939dd74decc5321
ok 2 - test basic SHA-256 hash values
# passed all 2 test(s)
1..2
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0016-oidmap.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0016-oidmap/.git/
expecting success of 0016.1 'setup':
test_commit one &&
test_commit two &&
test_commit three &&
test_commit four
[master (root-commit) d79ce16] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
[master 139b20d] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 two.t
[master 7c7cd71] three
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 three.t
[master fd8d77e] four
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 four.t
ok 1 - setup
expecting success of 0016.2 'put':
test_oidmap "put one 1
put two 2
put invalidOid 4
put three 3" "NULL
NULL
Unknown oid: invalidOid
NULL"
ok 2 - put
expecting success of 0016.3 'replace':
test_oidmap "put one 1
put two 2
put three 3
put invalidOid 4
put two deux
put one un" "NULL
NULL
NULL
Unknown oid: invalidOid
2
1"
ok 3 - replace
expecting success of 0016.4 'get':
test_oidmap "put one 1
put two 2
put three 3
get two
get four
get invalidOid
get one" "NULL
NULL
NULL
2
NULL
Unknown oid: invalidOid
1"
ok 4 - get
expecting success of 0016.5 'remove':
test_oidmap "put one 1
put two 2
put three 3
remove one
remove two
remove invalidOid
remove four" "NULL
NULL
NULL
1
2
Unknown oid: invalidOid
NULL"
ok 5 - remove
expecting success of 0016.6 'iterate':
test-tool oidmap >actual.raw <<-\EOF &&
put one 1
put two 2
put three 3
iterate
EOF
# sort "expect" too so we do not rely on the order of particular oids
sort >expect <<-EOF &&
NULL
NULL
NULL
$(git rev-parse one) 1
$(git rev-parse two) 2
$(git rev-parse three) 3
EOF
sort <actual.raw >actual &&
test_cmp expect actual
ok 6 - iterate
# passed all 6 test(s)
1..6
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0017-env-helper.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0017-env-helper/.git/
expecting success of 0017.1 'test-tool env-helper usage':
test_must_fail test-tool env-helper &&
test_must_fail test-tool env-helper --type=bool &&
test_must_fail test-tool env-helper --type=ulong &&
test_must_fail test-tool env-helper --type=bool &&
test_must_fail test-tool env-helper --type=bool --default &&
test_must_fail test-tool env-helper --type=bool --default= &&
test_must_fail test-tool env-helper --defaultxyz
usage: test-tool env-helper --type=[bool|ulong] <options> <env-var>
--type <type> value is given this type
--default <value> default for git_env_*(...) to fall back on
--exit-code be quiet only use git_env_*() value as exit code
usage: test-tool env-helper --type=[bool|ulong] <options> <env-var>
--type <type> value is given this type
--default <value> default for git_env_*(...) to fall back on
--exit-code be quiet only use git_env_*() value as exit code
usage: test-tool env-helper --type=[bool|ulong] <options> <env-var>
--type <type> value is given this type
--default <value> default for git_env_*(...) to fall back on
--exit-code be quiet only use git_env_*() value as exit code
usage: test-tool env-helper --type=[bool|ulong] <options> <env-var>
--type <type> value is given this type
--default <value> default for git_env_*(...) to fall back on
--exit-code be quiet only use git_env_*() value as exit code
error: option `default' requires a value
usage: test-tool env-helper --type=[bool|ulong] <options> <env-var>
--type <type> value is given this type
--default <value> default for git_env_*(...) to fall back on
--exit-code be quiet only use git_env_*() value as exit code
usage: test-tool env-helper --type=[bool|ulong] <options> <env-var>
--type <type> value is given this type
--default <value> default for git_env_*(...) to fall back on
--exit-code be quiet only use git_env_*() value as exit code
ok 1 - test-tool env-helper usage
expecting success of 0017.2 'test-tool env-helper bad default values':
test_must_fail test-tool env-helper --type=bool --default=1xyz MISSING &&
test_must_fail test-tool env-helper --type=ulong --default=1xyz MISSING
error: option `--default' expects a boolean value with `--type=bool`, not `1xyz`
usage: test-tool env-helper --type=[bool|ulong] <options> <env-var>
--type <type> value is given this type
--default <value> default for git_env_*(...) to fall back on
--exit-code be quiet only use git_env_*() value as exit code
error: option `--default' expects an unsigned long value with `--type=ulong`, not `1xyz`
usage: test-tool env-helper --type=[bool|ulong] <options> <env-var>
--type <type> value is given this type
--default <value> default for git_env_*(...) to fall back on
--exit-code be quiet only use git_env_*() value as exit code
ok 2 - test-tool env-helper bad default values
expecting success of 0017.3 'test-tool env-helper --type=bool':
# Test various --default bool values
echo true >expected &&
test-tool env-helper --type=bool --default=1 MISSING >actual &&
test_cmp expected actual &&
test-tool env-helper --type=bool --default=yes MISSING >actual &&
test_cmp expected actual &&
test-tool env-helper --type=bool --default=true MISSING >actual &&
test_cmp expected actual &&
echo false >expected &&
test_must_fail test-tool env-helper --type=bool --default=0 MISSING >actual &&
test_cmp expected actual &&
test_must_fail test-tool env-helper --type=bool --default=no MISSING >actual &&
test_cmp expected actual &&
test_must_fail test-tool env-helper --type=bool --default=false MISSING >actual &&
test_cmp expected actual &&
# No output with --exit-code
test-tool env-helper --type=bool --default=true --exit-code MISSING >actual.out 2>actual.err &&
test_must_be_empty actual.out &&
test_must_be_empty actual.err &&
test_must_fail test-tool env-helper --type=bool --default=false --exit-code MISSING >actual.out 2>actual.err &&
test_must_be_empty actual.out &&
test_must_be_empty actual.err &&
# Existing variable
EXISTS=true test-tool env-helper --type=bool --default=false --exit-code EXISTS >actual.out 2>actual.err &&
test_must_be_empty actual.out &&
test_must_be_empty actual.err &&
test_must_fail \
env EXISTS=false \
test-tool env-helper --type=bool --default=true --exit-code EXISTS >actual.out 2>actual.err &&
test_must_be_empty actual.out &&
test_must_be_empty actual.err
ok 3 - test-tool env-helper --type=bool
expecting success of 0017.4 'test-tool env-helper --type=ulong':
echo 1234567890 >expected &&
test-tool env-helper --type=ulong --default=1234567890 MISSING >actual.out 2>actual.err &&
test_cmp expected actual.out &&
test_must_be_empty actual.err &&
echo 0 >expected &&
test_must_fail test-tool env-helper --type=ulong --default=0 MISSING >actual &&
test_cmp expected actual &&
test-tool env-helper --type=ulong --default=1234567890 --exit-code MISSING >actual.out 2>actual.err &&
test_must_be_empty actual.out &&
test_must_be_empty actual.err &&
EXISTS=1234567890 test-tool env-helper --type=ulong --default=0 EXISTS --exit-code >actual.out 2>actual.err &&
test_must_be_empty actual.out &&
test_must_be_empty actual.err &&
echo 1234567890 >expected &&
EXISTS=1234567890 test-tool env-helper --type=ulong --default=0 EXISTS >actual.out 2>actual.err &&
test_cmp expected actual.out &&
test_must_be_empty actual.err
ok 4 - test-tool env-helper --type=ulong
expecting success of 0017.5 'test-tool env-helper reads config thanks to trace2':
mkdir home &&
git config -f home/.gitconfig include.path cycle &&
git config -f home/cycle include.path .gitconfig &&
test_must_fail \
env HOME="$(pwd)/home" \
git config -l 2>err &&
grep "exceeded maximum include depth" err &&
test_must_fail \
env HOME="$(pwd)/home" GIT_TEST_ENV_HELPER=true \
test-tool -C cycle env-helper --type=bool --default=0 --exit-code GIT_TEST_ENV_HELPER 2>err &&
grep "exceeded maximum include depth" err
fatal: exceeded maximum include depth (10) while including
fatal: exceeded maximum include depth (10) while including
ok 5 - test-tool env-helper reads config thanks to trace2
# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0018-advice.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0018-advice/.git/
expecting success of 0018.1 'advice should be printed when config variable is unset':
cat >expect <<-\EOF &&
hint: This is a piece of advice
hint: Disable this message with "git config advice.nestedTag false"
EOF
test-tool advise "This is a piece of advice" 2>actual &&
test_cmp expect actual
ok 1 - advice should be printed when config variable is unset
expecting success of 0018.2 'advice should be printed when config variable is set to true':
cat >expect <<-\EOF &&
hint: This is a piece of advice
hint: Disable this message with "git config advice.nestedTag false"
EOF
test_config advice.nestedTag true &&
test-tool advise "This is a piece of advice" 2>actual &&
test_cmp expect actual
ok 2 - advice should be printed when config variable is set to true
expecting success of 0018.3 'advice should not be printed when config variable is set to false':
test_config advice.nestedTag false &&
test-tool advise "This is a piece of advice" 2>actual &&
test_must_be_empty actual
ok 3 - advice should not be printed when config variable is set to false
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0010-racy-git.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0019-json-writer.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0019-json-writer/.git/
expecting success of 0019.1 'unit test of json-writer routines':
test-tool json-writer -u
ok 1 - unit test of json-writer routines
expecting success of 0019.2 'trivial object':
cat >expect <<-\EOF &&
{}
EOF
cat >input <<-\EOF &&
object
end
EOF
test-tool json-writer <input >actual &&
test_cmp expect actual
ok 2 - trivial object
expecting success of 0019.3 'trivial array':
cat >expect <<-\EOF &&
[]
EOF
cat >input <<-\EOF &&
array
end
EOF
test-tool json-writer <input >actual &&
test_cmp expect actual
ok 3 - trivial array
expecting success of 0019.4 'simple object':
cat >expect <<-\EOF &&
{"a":"abc","b":42,"c":3.14,"d":true,"e":false,"f":null}
EOF
cat >input <<-\EOF &&
object
object-string a abc
object-int b 42
object-double c 2 3.140
object-true d
object-false e
object-null f
end
EOF
test-tool json-writer <input >actual &&
test_cmp expect actual
ok 4 - simple object
expecting success of 0019.5 'simple array':
cat >expect <<-\EOF &&
["abc",42,3.14,true,false,null]
EOF
cat >input <<-\EOF &&
array
array-string abc
array-int 42
array-double 2 3.140
array-true
array-false
array-null
end
EOF
test-tool json-writer <input >actual &&
test_cmp expect actual
ok 5 - simple array
expecting success of 0019.6 'escape quoting string':
cat >expect <<-\EOF &&
{"a":"abc\\def"}
EOF
cat >input <<-\EOF &&
object
object-string a abc\def
end
EOF
test-tool json-writer <input >actual &&
test_cmp expect actual
ok 6 - escape quoting string
expecting success of 0019.7 'escape quoting string 2':
cat >expect <<-\EOF &&
{"a":"abc\"def"}
EOF
cat >input <<-\EOF &&
object
object-string a abc"def
end
EOF
test-tool json-writer <input >actual &&
test_cmp expect actual
ok 7 - escape quoting string 2
expecting success of 0019.8 'nested inline object':
cat >expect <<-\EOF &&
{"a":"abc","b":42,"sub1":{"c":3.14,"d":true,"sub2":{"e":false,"f":null}}}
EOF
cat >input <<-\EOF &&
object
object-string a abc
object-int b 42
object-object sub1
object-double c 2 3.140
object-true d
object-object sub2
object-false e
object-null f
end
end
end
EOF
test-tool json-writer <input >actual &&
test_cmp expect actual
ok 8 - nested inline object
expecting success of 0019.9 'nested inline array':
cat >expect <<-\EOF &&
["abc",42,[3.14,true,[false,null]]]
EOF
cat >input <<-\EOF &&
array
array-string abc
array-int 42
array-array
array-double 2 3.140
array-true
array-array
array-false
array-null
end
end
end
EOF
test-tool json-writer <input >actual &&
test_cmp expect actual
ok 9 - nested inline array
expecting success of 0019.10 'nested inline object and array':
cat >expect <<-\EOF &&
{"a":"abc","b":42,"sub1":{"c":3.14,"d":true,"sub2":[false,null]}}
EOF
cat >input <<-\EOF &&
object
object-string a abc
object-int b 42
object-object sub1
object-double c 2 3.140
object-true d
object-array sub2
array-false
array-null
end
end
end
EOF
test-tool json-writer <input >actual &&
test_cmp expect actual
ok 10 - nested inline object and array
expecting success of 0019.11 'nested inline object and array 2':
cat >expect <<-\EOF &&
{"a":"abc","b":42,"sub1":{"c":3.14,"d":true,"sub2":[false,{"g":0,"h":1},null]}}
EOF
cat >input <<-\EOF &&
object
object-string a abc
object-int b 42
object-object sub1
object-double c 2 3.140
object-true d
object-array sub2
array-false
array-object
object-int g 0
object-int h 1
end
array-null
end
end
end
EOF
test-tool json-writer <input >actual &&
test_cmp expect actual
ok 11 - nested inline object and array 2
expecting success of 0019.12 'pretty nested inline object and array 2':
sed -e "s/^|//" >expect <<-\EOF &&
|{
| "a": "abc",
| "b": 42,
| "sub1": {
| "c": 3.14,
| "d": true,
| "sub2": [
| false,
| {
| "g": 0,
| "h": 1
| },
| null
| ]
| }
|}
EOF
cat >input <<-\EOF &&
object
object-string a abc
object-int b 42
object-object sub1
object-double c 2 3.140
object-true d
object-array sub2
array-false
array-object
object-int g 0
object-int h 1
end
array-null
end
end
end
EOF
test-tool json-writer -p <input >actual &&
test_cmp expect actual
ok 12 - pretty nested inline object and array 2
expecting success of 0019.13 'inline object with no members':
cat >expect <<-\EOF &&
{"a":"abc","empty":{},"b":42}
EOF
cat >input <<-\EOF &&
object
object-string a abc
object-object empty
end
object-int b 42
end
EOF
test-tool json-writer <input >actual &&
test_cmp expect actual
ok 13 - inline object with no members
expecting success of 0019.14 'inline array with no members':
cat >expect <<-\EOF &&
{"a":"abc","empty":[],"b":42}
EOF
cat >input <<-\EOF &&
object
object-string a abc
object-array empty
end
object-int b 42
end
EOF
test-tool json-writer <input >actual &&
test_cmp expect actual
ok 14 - inline array with no members
expecting success of 0019.15 'larger empty example':
cat >expect <<-\EOF &&
{"a":"abc","empty":[{},{},{},[],{}],"b":42}
EOF
cat >input <<-\EOF &&
object
object-string a abc
object-array empty
array-object
end
array-object
end
array-object
end
array-array
end
array-object
end
end
object-int b 42
end
EOF
test-tool json-writer <input >actual &&
test_cmp expect actual
ok 15 - larger empty example
checking prerequisite: PERLJSON
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-PERLJSON" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-PERLJSON" &&
perl -MJSON -e "exit 0"
)
Can't locate JSON.pm in @INC (you may need to install the JSON module) (@INC contains: /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.36.0 /usr/local/share/perl/5.36.0 /usr/lib/arm-linux-gnueabihf/perl5/5.36 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl-base /usr/lib/arm-linux-gnueabihf/perl/5.36 /usr/share/perl/5.36 /usr/local/lib/site_perl .).
BEGIN failed--compilation aborted.
prerequisite PERLJSON not satisfied
ok 16 # skip parse JSON using Perl (missing PERLJSON)
# passed all 16 test(s)
1..16
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0008-ignores.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 || return 1
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
mkdir .git/info &&
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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0008-ignores/a/submodule/.git/
[master (root-commit) d93acdf] commit in submodule
Author: A U Thor <author@example.com>
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:
hint: git submodule add <url> a/submodule
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached a/submodule
hint:
hint: See "git help submodule" for more information.
ok 1 - setup
expecting success of 0008.2 '. corner-case':
expect "$expect" &&
eval "$code"
ok 2 - . corner-case
expecting success of 0008.3 '. corner-case with -q':
expect '' &&
test_check_ignore . 1
ok 3 - . corner-case with -q
expecting success of 0008.4 '. corner-case with --quiet':
expect '' &&
test_check_ignore . 1
ok 4 - . corner-case with --quiet
expecting success of 0008.5 '. corner-case with -v':
expect '' &&
test_check_ignore . 1
ok 5 - . corner-case with -v
expecting success of 0008.6 '. corner-case with -v -n':
expect ':: .' &&
test_check_ignore . 1
ok 6 - . corner-case with -v -n
expecting success of 0008.7 '. corner-case with -v --non-matching':
expect ':: .' &&
test_check_ignore . 1
ok 7 - . corner-case with -v --non-matching
expecting success of 0008.8 '. corner-case with --verbose':
expect '' &&
test_check_ignore . 1
ok 8 - . corner-case with --verbose
expecting success of 0008.9 '. corner-case with --verbose -n':
expect ':: .' &&
test_check_ignore . 1
ok 9 - . corner-case with --verbose -n
expecting success of 0008.10 '. corner-case with --verbose --non-matching':
expect ':: .' &&
test_check_ignore . 1
ok 10 - . corner-case with --verbose --non-matching
expecting success of 0008.11 'empty command line':
expect "$expect" &&
eval "$code"
fatal: no path specified
ok 11 - empty command line
expecting success of 0008.12 'empty command line with -q':
expect '' &&
test_check_ignore "" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 12 - empty command line with -q
expecting success of 0008.13 'empty command line with --quiet':
expect '' &&
test_check_ignore "" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 13 - empty command line with --quiet
expecting success of 0008.14 'empty command line with -v':
expect '' &&
test_check_ignore "" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 14 - empty command line with -v
expecting success of 0008.15 'empty command line with -v -n':
expect '' &&
test_check_ignore "" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 15 - empty command line with -v -n
expecting success of 0008.16 'empty command line with -v --non-matching':
expect '' &&
test_check_ignore "" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 16 - empty command line with -v --non-matching
expecting success of 0008.17 'empty command line with --verbose':
expect '' &&
test_check_ignore "" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 17 - empty command line with --verbose
expecting success of 0008.18 'empty command line with --verbose -n':
expect '' &&
test_check_ignore "" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 18 - empty command line with --verbose -n
expecting success of 0008.19 'empty command line with --verbose --non-matching':
expect '' &&
test_check_ignore "" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 19 - empty command line with --verbose --non-matching
expecting success of 0008.20 '--stdin with empty STDIN':
expect "$expect" &&
eval "$code"
ok 20 - --stdin with empty STDIN
expecting success of 0008.21 '--stdin with empty STDIN with -q':
expect '' &&
test_check_ignore "--stdin" 1 </dev/null &&
test_stderr ""
ok 21 - --stdin with empty STDIN with -q
expecting success of 0008.22 '--stdin with empty STDIN with --quiet':
expect '' &&
test_check_ignore "--stdin" 1 </dev/null &&
test_stderr ""
ok 22 - --stdin with empty STDIN with --quiet
expecting success of 0008.23 '--stdin with empty STDIN with -v':
expect '' &&
test_check_ignore "--stdin" 1 </dev/null &&
test_stderr ""
ok 23 - --stdin with empty STDIN with -v
expecting success of 0008.24 '--stdin with empty STDIN with -v -n':
expect '' &&
test_check_ignore "--stdin" 1 </dev/null &&
test_stderr ""
ok 24 - --stdin with empty STDIN with -v -n
expecting success of 0008.25 '--stdin with empty STDIN with -v --non-matching':
expect '' &&
test_check_ignore "--stdin" 1 </dev/null &&
test_stderr ""
ok 25 - --stdin with empty STDIN with -v --non-matching
expecting success of 0008.26 '--stdin with empty STDIN with --verbose':
expect '' &&
test_check_ignore "--stdin" 1 </dev/null &&
test_stderr ""
ok 26 - --stdin with empty STDIN with --verbose
expecting success of 0008.27 '--stdin with empty STDIN with --verbose -n':
expect '' &&
test_check_ignore "--stdin" 1 </dev/null &&
test_stderr ""
ok 27 - --stdin with empty STDIN with --verbose -n
expecting success of 0008.28 '--stdin with empty STDIN with --verbose --non-matching':
expect '' &&
test_check_ignore "--stdin" 1 </dev/null &&
test_stderr ""
ok 28 - --stdin with empty STDIN with --verbose --non-matching
expecting success of 0008.29 '-q with multiple args':
expect "" &&
test_check_ignore "-q one two" 128 &&
stderr_contains "fatal: --quiet is only valid with a single pathname"
fatal: --quiet is only valid with a single pathname
ok 29 - -q with multiple args
expecting success of 0008.30 '--quiet with multiple args':
expect "" &&
test_check_ignore "--quiet one two" 128 &&
stderr_contains "fatal: --quiet is only valid with a single pathname"
fatal: --quiet is only valid with a single pathname
ok 30 - --quiet with multiple args
expecting success of 0008.31 '-q -v':
expect '' &&
test_check_ignore '-q -v foo' 128 &&
stderr_contains 'fatal: cannot have both --quiet and --verbose'
fatal: cannot have both --quiet and --verbose
ok 31 - -q -v
expecting success of 0008.32 '--quiet -v':
expect '' &&
test_check_ignore '--quiet -v foo' 128 &&
stderr_contains 'fatal: cannot have both --quiet and --verbose'
fatal: cannot have both --quiet and --verbose
ok 32 - --quiet -v
expecting success of 0008.33 '-q --verbose':
expect '' &&
test_check_ignore '-q --verbose foo' 128 &&
stderr_contains 'fatal: cannot have both --quiet and --verbose'
fatal: cannot have both --quiet and --verbose
ok 33 - -q --verbose
expecting success of 0008.34 '--quiet --verbose':
expect '' &&
test_check_ignore '--quiet --verbose foo' 128 &&
stderr_contains 'fatal: cannot have both --quiet and --verbose'
fatal: cannot have both --quiet and --verbose
ok 34 - --quiet --verbose
expecting success of 0008.35 '--quiet with multiple args':
expect "" &&
test_check_ignore "--quiet one two" 128 &&
stderr_contains "fatal: --quiet is only valid with a single pathname"
fatal: --quiet is only valid with a single pathname
ok 35 - --quiet with multiple args
expecting success of 0008.36 'erroneous use of --':
expect "$expect" &&
eval "$code"
fatal: no path specified
ok 36 - erroneous use of --
expecting success of 0008.37 'erroneous use of -- with -q':
expect '' &&
test_check_ignore "--" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 37 - erroneous use of -- with -q
expecting success of 0008.38 'erroneous use of -- with --quiet':
expect '' &&
test_check_ignore "--" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 38 - erroneous use of -- with --quiet
expecting success of 0008.39 'erroneous use of -- with -v':
expect '' &&
test_check_ignore "--" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 39 - erroneous use of -- with -v
expecting success of 0008.40 'erroneous use of -- with -v -n':
expect '' &&
test_check_ignore "--" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 40 - erroneous use of -- with -v -n
expecting success of 0008.41 'erroneous use of -- with -v --non-matching':
expect '' &&
test_check_ignore "--" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 41 - erroneous use of -- with -v --non-matching
expecting success of 0008.42 'erroneous use of -- with --verbose':
expect '' &&
test_check_ignore "--" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 42 - erroneous use of -- with --verbose
expecting success of 0008.43 'erroneous use of -- with --verbose -n':
expect '' &&
test_check_ignore "--" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 43 - erroneous use of -- with --verbose -n
expecting success of 0008.44 'erroneous use of -- with --verbose --non-matching':
expect '' &&
test_check_ignore "--" 128 &&
stderr_contains "fatal: no path specified"
fatal: no path specified
ok 44 - erroneous use of -- with --verbose --non-matching
expecting success of 0008.45 '--stdin with superfluous arg':
expect "$expect" &&
eval "$code"
fatal: cannot specify pathnames with --stdin
ok 45 - --stdin with superfluous arg
expecting success of 0008.46 '--stdin with superfluous arg with -q':
expect '' &&
test_check_ignore "--stdin foo" 128 &&
stderr_contains "fatal: cannot specify pathnames with --stdin"
fatal: cannot specify pathnames with --stdin
ok 46 - --stdin with superfluous arg with -q
expecting success of 0008.47 '--stdin with superfluous arg with --quiet':
expect '' &&
test_check_ignore "--stdin foo" 128 &&
stderr_contains "fatal: cannot specify pathnames with --stdin"
fatal: cannot specify pathnames with --stdin
ok 47 - --stdin with superfluous arg with --quiet
expecting success of 0008.48 '--stdin with superfluous arg with -v':
expect '' &&
test_check_ignore "--stdin foo" 128 &&
stderr_contains "fatal: cannot specify pathnames with --stdin"
fatal: cannot specify pathnames with --stdin
ok 48 - --stdin with superfluous arg with -v
expecting success of 0008.49 '--stdin with superfluous arg with -v -n':
expect '' &&
test_check_ignore "--stdin foo" 128 &&
stderr_contains "fatal: cannot specify pathnames with --stdin"
fatal: cannot specify pathnames with --stdin
ok 49 - --stdin with superfluous arg with -v -n
expecting success of 0008.50 '--stdin with superfluous arg with -v --non-matching':
expect '' &&
test_check_ignore "--stdin foo" 128 &&
stderr_contains "fatal: cannot specify pathnames with --stdin"
fatal: cannot specify pathnames with --stdin
ok 50 - --stdin with superfluous arg with -v --non-matching
expecting success of 0008.51 '--stdin with superfluous arg with --verbose':
expect '' &&
test_check_ignore "--stdin foo" 128 &&
stderr_contains "fatal: cannot specify pathnames with --stdin"
fatal: cannot specify pathnames with --stdin
ok 51 - --stdin with superfluous arg with --verbose
expecting success of 0008.52 '--stdin with superfluous arg with --verbose -n':
expect '' &&
test_check_ignore "--stdin foo" 128 &&
stderr_contains "fatal: cannot specify pathnames with --stdin"
fatal: cannot specify pathnames with --stdin
ok 52 - --stdin with superfluous arg with --verbose -n
expecting success of 0008.53 '--stdin with superfluous arg with --verbose --non-matching':
expect '' &&
test_check_ignore "--stdin foo" 128 &&
stderr_contains "fatal: cannot specify pathnames with --stdin"
fatal: cannot specify pathnames with --stdin
ok 53 - --stdin with superfluous arg with --verbose --non-matching
expecting success of 0008.54 '--stdin -z with superfluous arg':
expect "$expect" &&
eval "$code"
fatal: cannot specify pathnames with --stdin
ok 54 - --stdin -z with superfluous arg
expecting success of 0008.55 '--stdin -z with superfluous arg with -q':
expect '' &&
test_check_ignore "--stdin -z foo" 128 &&
stderr_contains "fatal: cannot specify pathnames with --stdin"
fatal: cannot specify pathnames with --stdin
ok 55 - --stdin -z with superfluous arg with -q
expecting success of 0008.56 '--stdin -z with superfluous arg with --quiet':
expect '' &&
test_check_ignore "--stdin -z foo" 128 &&
stderr_contains "fatal: cannot specify pathnames with --stdin"
fatal: cannot specify pathnames with --stdin
ok 56 - --stdin -z with superfluous arg with --quiet
expecting success of 0008.57 '--stdin -z with superfluous arg with -v':
expect '' &&
test_check_ignore "--stdin -z foo" 128 &&
stderr_contains "fatal: cannot specify pathnames with --stdin"
fatal: cannot specify pathnames with --stdin
ok 57 - --stdin -z with superfluous arg with -v
expecting success of 0008.58 '--stdin -z with superfluous arg with -v -n':
expect '' &&
test_check_ignore "--stdin -z foo" 128 &&
stderr_contains "fatal: cannot specify pathnames with --stdin"
fatal: cannot specify pathnames with --stdin
ok 58 - --stdin -z with superfluous arg with -v -n
expecting success of 0008.59 '--stdin -z with superfluous arg with -v --non-matching':
expect '' &&
test_check_ignore "--stdin -z foo" 128 &&
stderr_contains "fatal: cannot specify pathnames with --stdin"
fatal: cannot specify pathnames with --stdin
ok 59 - --stdin -z with superfluous arg with -v --non-matching
expecting success of 0008.60 '--stdin -z with superfluous arg with --verbose':
expect '' &&
test_check_ignore "--stdin -z foo" 128 &&
stderr_contains "fatal: cannot specify pathnames with --stdin"
fatal: cannot specify pathnames with --stdin
ok 60 - --stdin -z with superfluous arg with --verbose
expecting success of 0008.61 '--stdin -z with superfluous arg with --verbose -n':
expect '' &&
test_check_ignore "--stdin -z foo" 128 &&
stderr_contains "fatal: cannot specify pathnames with --stdin"
fatal: cannot specify pathnames with --stdin
ok 61 - --stdin -z with superfluous arg with --verbose -n
expecting success of 0008.62 '--stdin -z with superfluous arg with --verbose --non-matching':
expect '' &&
test_check_ignore "--stdin -z foo" 128 &&
stderr_contains "fatal: cannot specify pathnames with --stdin"
fatal: cannot specify pathnames with --stdin
ok 62 - --stdin -z with superfluous arg with --verbose --non-matching
expecting success of 0008.63 '-z without --stdin':
expect "$expect" &&
eval "$code"
fatal: -z only makes sense with --stdin
ok 63 - -z without --stdin
expecting success of 0008.64 '-z without --stdin with -q':
expect '' &&
test_check_ignore "-z" 128 &&
stderr_contains "fatal: -z only makes sense with --stdin"
fatal: -z only makes sense with --stdin
ok 64 - -z without --stdin with -q
expecting success of 0008.65 '-z without --stdin with --quiet':
expect '' &&
test_check_ignore "-z" 128 &&
stderr_contains "fatal: -z only makes sense with --stdin"
fatal: -z only makes sense with --stdin
ok 65 - -z without --stdin with --quiet
expecting success of 0008.66 '-z without --stdin with -v':
expect '' &&
test_check_ignore "-z" 128 &&
stderr_contains "fatal: -z only makes sense with --stdin"
fatal: -z only makes sense with --stdin
ok 66 - -z without --stdin with -v
expecting success of 0008.67 '-z without --stdin with -v -n':
expect '' &&
test_check_ignore "-z" 128 &&
stderr_contains "fatal: -z only makes sense with --stdin"
fatal: -z only makes sense with --stdin
ok 67 - -z without --stdin with -v -n
expecting success of 0008.68 '-z without --stdin with -v --non-matching':
expect '' &&
test_check_ignore "-z" 128 &&
stderr_contains "fatal: -z only makes sense with --stdin"
fatal: -z only makes sense with --stdin
ok 68 - -z without --stdin with -v --non-matching
expecting success of 0008.69 '-z without --stdin with --verbose':
expect '' &&
test_check_ignore "-z" 128 &&
stderr_contains "fatal: -z only makes sense with --stdin"
fatal: -z only makes sense with --stdin
ok 69 - -z without --stdin with --verbose
expecting success of 0008.70 '-z without --stdin with --verbose -n':
expect '' &&
test_check_ignore "-z" 128 &&
stderr_contains "fatal: -z only makes sense with --stdin"
fatal: -z only makes sense with --stdin
ok 70 - -z without --stdin with --verbose -n
expecting success of 0008.71 '-z without --stdin with --verbose --non-matching':
expect '' &&
test_check_ignore "-z" 128 &&
stderr_contains "fatal: -z only makes sense with --stdin"
fatal: -z only makes sense with --stdin
ok 71 - -z without --stdin with --verbose --non-matching
expecting success of 0008.72 '-z without --stdin and superfluous arg':
expect "$expect" &&
eval "$code"
fatal: -z only makes sense with --stdin
ok 72 - -z without --stdin and superfluous arg
expecting success of 0008.73 '-z without --stdin and superfluous arg with -q':
expect '' &&
test_check_ignore "-z foo" 128 &&
stderr_contains "fatal: -z only makes sense with --stdin"
fatal: -z only makes sense with --stdin
ok 73 - -z without --stdin and superfluous arg with -q
expecting success of 0008.74 '-z without --stdin and superfluous arg with --quiet':
expect '' &&
test_check_ignore "-z foo" 128 &&
stderr_contains "fatal: -z only makes sense with --stdin"
fatal: -z only makes sense with --stdin
ok 74 - -z without --stdin and superfluous arg with --quiet
expecting success of 0008.75 '-z without --stdin and superfluous arg with -v':
expect '' &&
test_check_ignore "-z foo" 128 &&
stderr_contains "fatal: -z only makes sense with --stdin"
fatal: -z only makes sense with --stdin
ok 75 - -z without --stdin and superfluous arg with -v
expecting success of 0008.76 '-z without --stdin and superfluous arg with -v -n':
expect '' &&
test_check_ignore "-z foo" 128 &&
stderr_contains "fatal: -z only makes sense with --stdin"
fatal: -z only makes sense with --stdin
ok 76 - -z without --stdin and superfluous arg with -v -n
expecting success of 0008.77 '-z without --stdin and superfluous arg with -v --non-matching':
expect '' &&
test_check_ignore "-z foo" 128 &&
stderr_contains "fatal: -z only makes sense with --stdin"
fatal: -z only makes sense with --stdin
ok 77 - -z without --stdin and superfluous arg with -v --non-matching
expecting success of 0008.78 '-z without --stdin and superfluous arg with --verbose':
expect '' &&
test_check_ignore "-z foo" 128 &&
stderr_contains "fatal: -z only makes sense with --stdin"
fatal: -z only makes sense with --stdin
ok 78 - -z without --stdin and superfluous arg with --verbose
expecting success of 0008.79 '-z without --stdin and superfluous arg with --verbose -n':
expect '' &&
test_check_ignore "-z foo" 128 &&
stderr_contains "fatal: -z only makes sense with --stdin"
fatal: -z only makes sense with --stdin
ok 79 - -z without --stdin and superfluous arg with --verbose -n
expecting success of 0008.80 '-z without --stdin and superfluous arg with --verbose --non-matching':
expect '' &&
test_check_ignore "-z foo" 128 &&
stderr_contains "fatal: -z only makes sense with --stdin"
fatal: -z only makes sense with --stdin
ok 80 - -z without --stdin and superfluous arg with --verbose --non-matching
expecting success of 0008.81 'needs work tree':
expect "$expect" &&
eval "$code"
fatal: this operation must be run in a work tree
ok 81 - needs work tree
expecting success of 0008.82 'needs work tree with -q':
expect '' &&
(
cd .git &&
test_check_ignore "foo" 128
) &&
stderr_contains "fatal: this operation must be run in a work tree"
fatal: this operation must be run in a work tree
ok 82 - needs work tree with -q
expecting success of 0008.83 'needs work tree with --quiet':
expect '' &&
(
cd .git &&
test_check_ignore "foo" 128
) &&
stderr_contains "fatal: this operation must be run in a work tree"
fatal: this operation must be run in a work tree
ok 83 - needs work tree with --quiet
expecting success of 0008.84 'needs work tree with -v':
expect '' &&
(
cd .git &&
test_check_ignore "foo" 128
) &&
stderr_contains "fatal: this operation must be run in a work tree"
fatal: this operation must be run in a work tree
ok 84 - needs work tree with -v
expecting success of 0008.85 'needs work tree with -v -n':
expect '' &&
(
cd .git &&
test_check_ignore "foo" 128
) &&
stderr_contains "fatal: this operation must be run in a work tree"
fatal: this operation must be run in a work tree
ok 85 - needs work tree with -v -n
expecting success of 0008.86 'needs work tree with -v --non-matching':
expect '' &&
(
cd .git &&
test_check_ignore "foo" 128
) &&
stderr_contains "fatal: this operation must be run in a work tree"
fatal: this operation must be run in a work tree
ok 86 - needs work tree with -v --non-matching
expecting success of 0008.87 'needs work tree with --verbose':
expect '' &&
(
cd .git &&
test_check_ignore "foo" 128
) &&
stderr_contains "fatal: this operation must be run in a work tree"
fatal: this operation must be run in a work tree
ok 87 - needs work tree with --verbose
expecting success of 0008.88 'needs work tree with --verbose -n':
expect '' &&
(
cd .git &&
test_check_ignore "foo" 128
) &&
stderr_contains "fatal: this operation must be run in a work tree"
fatal: this operation must be run in a work tree
ok 88 - needs work tree with --verbose -n
expecting success of 0008.89 'needs work tree with --verbose --non-matching':
expect '' &&
(
cd .git &&
test_check_ignore "foo" 128
) &&
stderr_contains "fatal: this operation must be run in a work tree"
fatal: this operation must be run in a work tree
ok 89 - needs work tree with --verbose --non-matching
expecting success of 0008.90 'non-existent file at top-level not ignored':
expect "$expect" &&
eval "$code"
ok 90 - non-existent file at top-level not ignored
expecting success of 0008.91 'non-existent file at top-level not ignored with -q':
expect '' &&
test_check_ignore 'non-existent' 1
ok 91 - non-existent file at top-level not ignored with -q
expecting success of 0008.92 'non-existent file at top-level not ignored with --quiet':
expect '' &&
test_check_ignore 'non-existent' 1
ok 92 - non-existent file at top-level not ignored with --quiet
expecting success of 0008.93 'non-existent file at top-level not ignored with -v':
expect '' &&
test_check_ignore 'non-existent' 1
ok 93 - non-existent file at top-level not ignored with -v
expecting success of 0008.94 'non-existent file at top-level not ignored with -v -n':
expect ':: non-existent' &&
test_check_ignore 'non-existent' 1
ok 94 - non-existent file at top-level not ignored with -v -n
expecting success of 0008.95 'non-existent file at top-level not ignored with -v --non-matching':
expect ':: non-existent' &&
test_check_ignore 'non-existent' 1
ok 95 - non-existent file at top-level not ignored with -v --non-matching
expecting success of 0008.96 'non-existent file at top-level not ignored with --verbose':
expect '' &&
test_check_ignore 'non-existent' 1
ok 96 - non-existent file at top-level not ignored with --verbose
expecting success of 0008.97 'non-existent file at top-level not ignored with --verbose -n':
expect ':: non-existent' &&
test_check_ignore 'non-existent' 1
ok 97 - non-existent file at top-level not ignored with --verbose -n
expecting success of 0008.98 'non-existent file at top-level not ignored with --verbose --non-matching':
expect ':: non-existent' &&
test_check_ignore 'non-existent' 1
ok 98 - non-existent file at top-level not ignored with --verbose --non-matching
expecting success of 0008.99 'non-existent file at top-level not ignored with --no-index':
expect "$expect" &&
eval "$code"
ok 99 - non-existent file at top-level not ignored with --no-index
expecting success of 0008.100 'non-existent file at top-level not ignored with --no-index -q':
expect '' &&
test_check_ignore 'non-existent' 1
ok 100 - non-existent file at top-level not ignored with --no-index -q
expecting success of 0008.101 'non-existent file at top-level not ignored with --no-index --quiet':
expect '' &&
test_check_ignore 'non-existent' 1
ok 101 - non-existent file at top-level not ignored with --no-index --quiet
expecting success of 0008.102 'non-existent file at top-level not ignored with --no-index -v':
expect '' &&
test_check_ignore 'non-existent' 1
ok 102 - non-existent file at top-level not ignored with --no-index -v
expecting success of 0008.103 'non-existent file at top-level not ignored with --no-index -v -n':
expect ':: non-existent' &&
test_check_ignore 'non-existent' 1
ok 103 - non-existent file at top-level not ignored with --no-index -v -n
expecting success of 0008.104 'non-existent file at top-level not ignored with --no-index -v --non-matching':
expect ':: non-existent' &&
test_check_ignore 'non-existent' 1
ok 104 - non-existent file at top-level not ignored with --no-index -v --non-matching
expecting success of 0008.105 'non-existent file at top-level not ignored with --no-index --verbose':
expect '' &&
test_check_ignore 'non-existent' 1
ok 105 - non-existent file at top-level not ignored with --no-index --verbose
expecting success of 0008.106 'non-existent file at top-level not ignored with --no-index --verbose -n':
expect ':: non-existent' &&
test_check_ignore 'non-existent' 1
ok 106 - non-existent file at top-level not ignored with --no-index --verbose -n
expecting success of 0008.107 'non-existent file at top-level not ignored with --no-index --verbose --non-matching':
expect ':: non-existent' &&
test_check_ignore 'non-existent' 1
ok 107 - non-existent file at top-level not ignored with --no-index --verbose --non-matching
expecting success of 0008.108 'non-existent file at top-level ignored':
expect "$expect" &&
eval "$code"
ok 108 - non-existent file at top-level ignored
expecting success of 0008.109 'non-existent file at top-level ignored with -q':
expect '' &&
test_check_ignore 'one'
ok 109 - non-existent file at top-level ignored with -q
expecting success of 0008.110 'non-existent file at top-level ignored with --quiet':
expect '' &&
test_check_ignore 'one'
ok 110 - non-existent file at top-level ignored with --quiet
expecting success of 0008.111 'non-existent file at top-level ignored with -v':
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 111 - non-existent file at top-level ignored with -v
expecting success of 0008.112 'non-existent file at top-level ignored with -v -n':
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 112 - non-existent file at top-level ignored with -v -n
expecting success of 0008.113 'non-existent file at top-level ignored with -v --non-matching':
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 113 - non-existent file at top-level ignored with -v --non-matching
expecting success of 0008.114 'non-existent file at top-level ignored with --verbose':
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 114 - non-existent file at top-level ignored with --verbose
expecting success of 0008.115 'non-existent file at top-level ignored with --verbose -n':
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 115 - non-existent file at top-level ignored with --verbose -n
expecting success of 0008.116 'non-existent file at top-level ignored with --verbose --non-matching':
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 116 - non-existent file at top-level ignored with --verbose --non-matching
expecting success of 0008.117 'non-existent file at top-level ignored with --no-index':
expect "$expect" &&
eval "$code"
ok 117 - non-existent file at top-level ignored with --no-index
expecting success of 0008.118 'non-existent file at top-level ignored with --no-index -q':
expect '' &&
test_check_ignore 'one'
ok 118 - non-existent file at top-level ignored with --no-index -q
expecting success of 0008.119 'non-existent file at top-level ignored with --no-index --quiet':
expect '' &&
test_check_ignore 'one'
ok 119 - non-existent file at top-level ignored with --no-index --quiet
expecting success of 0008.120 'non-existent file at top-level ignored with --no-index -v':
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 120 - non-existent file at top-level ignored with --no-index -v
expecting success of 0008.121 'non-existent file at top-level ignored with --no-index -v -n':
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 121 - non-existent file at top-level ignored with --no-index -v -n
expecting success of 0008.122 'non-existent file at top-level ignored with --no-index -v --non-matching':
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 122 - non-existent file at top-level ignored with --no-index -v --non-matching
expecting success of 0008.123 'non-existent file at top-level ignored with --no-index --verbose':
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 123 - non-existent file at top-level ignored with --no-index --verbose
expecting success of 0008.124 'non-existent file at top-level ignored with --no-index --verbose -n':
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 124 - non-existent file at top-level ignored with --no-index --verbose -n
expecting success of 0008.125 'non-existent file at top-level ignored with --no-index --verbose --non-matching':
expect '.gitignore:1:one one' &&
test_check_ignore 'one'
ok 125 - non-existent file at top-level ignored with --no-index --verbose --non-matching
expecting success of 0008.126 'existing untracked file at top-level not ignored':
expect "$expect" &&
eval "$code"
ok 126 - existing untracked file at top-level not ignored
expecting success of 0008.127 'existing untracked file at top-level not ignored with -q':
expect '' &&
test_check_ignore 'not-ignored' 1
ok 127 - existing untracked file at top-level not ignored with -q
expecting success of 0008.128 'existing untracked file at top-level not ignored with --quiet':
expect '' &&
test_check_ignore 'not-ignored' 1
ok 128 - existing untracked file at top-level not ignored with --quiet
expecting success of 0008.129 'existing untracked file at top-level not ignored with -v':
expect '' &&
test_check_ignore 'not-ignored' 1
ok 129 - existing untracked file at top-level not ignored with -v
expecting success of 0008.130 'existing untracked file at top-level not ignored with -v -n':
expect ':: not-ignored' &&
test_check_ignore 'not-ignored' 1
ok 130 - existing untracked file at top-level not ignored with -v -n
expecting success of 0008.131 'existing untracked file at top-level not ignored with -v --non-matching':
expect ':: not-ignored' &&
test_check_ignore 'not-ignored' 1
ok 131 - existing untracked file at top-level not ignored with -v --non-matching
expecting success of 0008.132 'existing untracked file at top-level not ignored with --verbose':
expect '' &&
test_check_ignore 'not-ignored' 1
ok 132 - existing untracked file at top-level not ignored with --verbose
expecting success of 0008.133 'existing untracked file at top-level not ignored with --verbose -n':
expect ':: not-ignored' &&
test_check_ignore 'not-ignored' 1
ok 133 - existing untracked file at top-level not ignored with --verbose -n
expecting success of 0008.134 'existing untracked file at top-level not ignored with --verbose --non-matching':
expect ':: not-ignored' &&
test_check_ignore 'not-ignored' 1
ok 134 - existing untracked file at top-level not ignored with --verbose --non-matching
expecting success of 0008.135 'existing untracked file at top-level not ignored with --no-index':
expect "$expect" &&
eval "$code"
ok 135 - existing untracked file at top-level not ignored with --no-index
expecting success of 0008.136 'existing untracked file at top-level not ignored with --no-index -q':
expect '' &&
test_check_ignore 'not-ignored' 1
ok 136 - existing untracked file at top-level not ignored with --no-index -q
expecting success of 0008.137 'existing untracked file at top-level not ignored with --no-index --quiet':
expect '' &&
test_check_ignore 'not-ignored' 1
ok 137 - existing untracked file at top-level not ignored with --no-index --quiet
expecting success of 0008.138 'existing untracked file at top-level not ignored with --no-index -v':
expect '' &&
test_check_ignore 'not-ignored' 1
ok 138 - existing untracked file at top-level not ignored with --no-index -v
expecting success of 0008.139 'existing untracked file at top-level not ignored with --no-index -v -n':
expect ':: not-ignored' &&
test_check_ignore 'not-ignored' 1
ok 139 - existing untracked file at top-level not ignored with --no-index -v -n
expecting success of 0008.140 'existing untracked file at top-level not ignored with --no-index -v --non-matching':
expect ':: not-ignored' &&
test_check_ignore 'not-ignored' 1
ok 140 - existing untracked file at top-level not ignored with --no-index -v --non-matching
expecting success of 0008.141 'existing untracked file at top-level not ignored with --no-index --verbose':
expect '' &&
test_check_ignore 'not-ignored' 1
ok 141 - existing untracked file at top-level not ignored with --no-index --verbose
expecting success of 0008.142 'existing untracked file at top-level not ignored with --no-index --verbose -n':
expect ':: not-ignored' &&
test_check_ignore 'not-ignored' 1
ok 142 - existing untracked file at top-level not ignored with --no-index --verbose -n
expecting success of 0008.143 'existing untracked file at top-level not ignored with --no-index --verbose --non-matching':
expect ':: not-ignored' &&
test_check_ignore 'not-ignored' 1
ok 143 - existing untracked file at top-level not ignored with --no-index --verbose --non-matching
expecting success of 0008.144 'existing tracked file at top-level not ignored':
expect "$expect" &&
eval "$code"
ok 144 - existing tracked file at top-level not ignored
expecting success of 0008.145 'existing tracked file at top-level not ignored with -q':
expect '' &&
test_check_ignore 'ignored-but-in-index' 1
ok 145 - existing tracked file at top-level not ignored with -q
expecting success of 0008.146 'existing tracked file at top-level not ignored with --quiet':
expect '' &&
test_check_ignore 'ignored-but-in-index' 1
ok 146 - existing tracked file at top-level not ignored with --quiet
expecting success of 0008.147 'existing tracked file at top-level not ignored with -v':
expect '' &&
test_check_ignore 'ignored-but-in-index' 1
ok 147 - existing tracked file at top-level not ignored with -v
expecting success of 0008.148 'existing tracked file at top-level not ignored with -v -n':
expect ':: ignored-but-in-index' &&
test_check_ignore 'ignored-but-in-index' 1
ok 148 - existing tracked file at top-level not ignored with -v -n
expecting success of 0008.149 'existing tracked file at top-level not ignored with -v --non-matching':
expect ':: ignored-but-in-index' &&
test_check_ignore 'ignored-but-in-index' 1
ok 149 - existing tracked file at top-level not ignored with -v --non-matching
expecting success of 0008.150 'existing tracked file at top-level not ignored with --verbose':
expect '' &&
test_check_ignore 'ignored-but-in-index' 1
ok 150 - existing tracked file at top-level not ignored with --verbose
expecting success of 0008.151 'existing tracked file at top-level not ignored with --verbose -n':
expect ':: ignored-but-in-index' &&
test_check_ignore 'ignored-but-in-index' 1
ok 151 - existing tracked file at top-level not ignored with --verbose -n
expecting success of 0008.152 'existing tracked file at top-level not ignored with --verbose --non-matching':
expect ':: ignored-but-in-index' &&
test_check_ignore 'ignored-but-in-index' 1
ok 152 - existing tracked file at top-level not ignored with --verbose --non-matching
expecting success of 0008.153 'existing tracked file at top-level shown as ignored with --no-index':
expect "$expect" &&
eval "$code"
ok 153 - existing tracked file at top-level shown as ignored with --no-index
expecting success of 0008.154 'existing tracked file at top-level shown as ignored with --no-index -q':
expect '' &&
test_check_ignore 'ignored-but-in-index'
ok 154 - existing tracked file at top-level shown as ignored with --no-index -q
expecting success of 0008.155 'existing tracked file at top-level shown as ignored with --no-index --quiet':
expect '' &&
test_check_ignore 'ignored-but-in-index'
ok 155 - existing tracked file at top-level shown as ignored with --no-index --quiet
expecting success of 0008.156 'existing tracked file at top-level shown as ignored with --no-index -v':
expect '.gitignore:2:ignored-* ignored-but-in-index' &&
test_check_ignore 'ignored-but-in-index'
ok 156 - existing tracked file at top-level shown as ignored with --no-index -v
expecting success of 0008.157 'existing tracked file at top-level shown as ignored with --no-index -v -n':
expect '.gitignore:2:ignored-* ignored-but-in-index' &&
test_check_ignore 'ignored-but-in-index'
ok 157 - existing tracked file at top-level shown as ignored with --no-index -v -n
expecting success of 0008.158 'existing tracked file at top-level shown as ignored with --no-index -v --non-matching':
expect '.gitignore:2:ignored-* ignored-but-in-index' &&
test_check_ignore 'ignored-but-in-index'
ok 158 - existing tracked file at top-level shown as ignored with --no-index -v --non-matching
expecting success of 0008.159 'existing tracked file at top-level shown as ignored with --no-index --verbose':
expect '.gitignore:2:ignored-* ignored-but-in-index' &&
test_check_ignore 'ignored-but-in-index'
ok 159 - existing tracked file at top-level shown as ignored with --no-index --verbose
expecting success of 0008.160 'existing tracked file at top-level shown as ignored with --no-index --verbose -n':
expect '.gitignore:2:ignored-* ignored-but-in-index' &&
test_check_ignore 'ignored-but-in-index'
ok 160 - existing tracked file at top-level shown as ignored with --no-index --verbose -n
expecting success of 0008.161 'existing tracked file at top-level shown as ignored with --no-index --verbose --non-matching':
expect '.gitignore:2:ignored-* ignored-but-in-index' &&
test_check_ignore 'ignored-but-in-index'
ok 161 - existing tracked file at top-level shown as ignored with --no-index --verbose --non-matching
expecting success of 0008.162 'existing untracked file at top-level ignored':
expect "$expect" &&
eval "$code"
ok 162 - existing untracked file at top-level ignored
expecting success of 0008.163 'existing untracked file at top-level ignored with -q':
expect '' &&
test_check_ignore 'ignored-and-untracked'
ok 163 - existing untracked file at top-level ignored with -q
expecting success of 0008.164 'existing untracked file at top-level ignored with --quiet':
expect '' &&
test_check_ignore 'ignored-and-untracked'
ok 164 - existing untracked file at top-level ignored with --quiet
expecting success of 0008.165 'existing untracked file at top-level ignored with -v':
expect '.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore 'ignored-and-untracked'
ok 165 - existing untracked file at top-level ignored with -v
expecting success of 0008.166 'existing untracked file at top-level ignored with -v -n':
expect '.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore 'ignored-and-untracked'
ok 166 - existing untracked file at top-level ignored with -v -n
expecting success of 0008.167 'existing untracked file at top-level ignored with -v --non-matching':
expect '.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore 'ignored-and-untracked'
ok 167 - existing untracked file at top-level ignored with -v --non-matching
expecting success of 0008.168 'existing untracked file at top-level ignored with --verbose':
expect '.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore 'ignored-and-untracked'
ok 168 - existing untracked file at top-level ignored with --verbose
expecting success of 0008.169 'existing untracked file at top-level ignored with --verbose -n':
expect '.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore 'ignored-and-untracked'
ok 169 - existing untracked file at top-level ignored with --verbose -n
expecting success of 0008.170 'existing untracked file at top-level ignored with --verbose --non-matching':
expect '.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore 'ignored-and-untracked'
ok 170 - existing untracked file at top-level ignored with --verbose --non-matching
expecting success of 0008.171 'existing untracked file at top-level ignored with --no-index':
expect "$expect" &&
eval "$code"
ok 171 - existing untracked file at top-level ignored with --no-index
expecting success of 0008.172 'existing untracked file at top-level ignored with --no-index -q':
expect '' &&
test_check_ignore 'ignored-and-untracked'
ok 172 - existing untracked file at top-level ignored with --no-index -q
expecting success of 0008.173 'existing untracked file at top-level ignored with --no-index --quiet':
expect '' &&
test_check_ignore 'ignored-and-untracked'
ok 173 - existing untracked file at top-level ignored with --no-index --quiet
expecting success of 0008.174 'existing untracked file at top-level ignored with --no-index -v':
expect '.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore 'ignored-and-untracked'
ok 174 - existing untracked file at top-level ignored with --no-index -v
expecting success of 0008.175 'existing untracked file at top-level ignored with --no-index -v -n':
expect '.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore 'ignored-and-untracked'
ok 175 - existing untracked file at top-level ignored with --no-index -v -n
expecting success of 0008.176 'existing untracked file at top-level ignored with --no-index -v --non-matching':
expect '.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore 'ignored-and-untracked'
ok 176 - existing untracked file at top-level ignored with --no-index -v --non-matching
expecting success of 0008.177 'existing untracked file at top-level ignored with --no-index --verbose':
expect '.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore 'ignored-and-untracked'
ok 177 - existing untracked file at top-level ignored with --no-index --verbose
expecting success of 0008.178 'existing untracked file at top-level ignored with --no-index --verbose -n':
expect '.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore 'ignored-and-untracked'
ok 178 - existing untracked file at top-level ignored with --no-index --verbose -n
expecting success of 0008.179 'existing untracked file at top-level ignored with --no-index --verbose --non-matching':
expect '.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore 'ignored-and-untracked'
ok 179 - existing untracked file at top-level ignored with --no-index --verbose --non-matching
expecting success of 0008.180 'mix of file types at top-level':
expect "$expect" &&
eval "$code"
ok 180 - mix of file types at top-level
expecting success of 0008.181 'mix of file types at top-level with -v':
expect '.gitignore:1:one one
.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore '
non-existent
one
not-ignored
ignored-but-in-index
ignored-and-untracked'
ok 181 - mix of file types at top-level with -v
expecting success of 0008.182 'mix of file types at top-level with -v -n':
expect ':: non-existent
.gitignore:1:one one
:: not-ignored
:: ignored-but-in-index
.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore '
non-existent
one
not-ignored
ignored-but-in-index
ignored-and-untracked'
ok 182 - mix of file types at top-level with -v -n
expecting success of 0008.183 'mix of file types at top-level with -v --non-matching':
expect ':: non-existent
.gitignore:1:one one
:: not-ignored
:: ignored-but-in-index
.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore '
non-existent
one
not-ignored
ignored-but-in-index
ignored-and-untracked'
ok 183 - mix of file types at top-level with -v --non-matching
expecting success of 0008.184 'mix of file types at top-level with --verbose':
expect '.gitignore:1:one one
.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore '
non-existent
one
not-ignored
ignored-but-in-index
ignored-and-untracked'
ok 184 - mix of file types at top-level with --verbose
expecting success of 0008.185 'mix of file types at top-level with --verbose -n':
expect ':: non-existent
.gitignore:1:one one
:: not-ignored
:: ignored-but-in-index
.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore '
non-existent
one
not-ignored
ignored-but-in-index
ignored-and-untracked'
ok 185 - mix of file types at top-level with --verbose -n
expecting success of 0008.186 'mix of file types at top-level with --verbose --non-matching':
expect ':: non-existent
.gitignore:1:one one
:: not-ignored
:: ignored-but-in-index
.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore '
non-existent
one
not-ignored
ignored-but-in-index
ignored-and-untracked'
ok 186 - mix of file types at top-level with --verbose --non-matching
expecting success of 0008.187 'mix of file types at top-level with --no-index':
expect "$expect" &&
eval "$code"
ok 187 - mix of file types at top-level with --no-index
expecting success of 0008.188 'mix of file types at top-level with --no-index -v':
expect '.gitignore:1:one one
.gitignore:2:ignored-* ignored-but-in-index
.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore '
non-existent
one
not-ignored
ignored-but-in-index
ignored-and-untracked'
ok 188 - mix of file types at top-level with --no-index -v
expecting success of 0008.189 'mix of file types at top-level with --no-index -v -n':
expect ':: non-existent
.gitignore:1:one one
:: not-ignored
.gitignore:2:ignored-* ignored-but-in-index
.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore '
non-existent
one
not-ignored
ignored-but-in-index
ignored-and-untracked'
ok 189 - mix of file types at top-level with --no-index -v -n
expecting success of 0008.190 'mix of file types at top-level with --no-index -v --non-matching':
expect ':: non-existent
.gitignore:1:one one
:: not-ignored
.gitignore:2:ignored-* ignored-but-in-index
.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore '
non-existent
one
not-ignored
ignored-but-in-index
ignored-and-untracked'
ok 190 - mix of file types at top-level with --no-index -v --non-matching
expecting success of 0008.191 'mix of file types at top-level with --no-index --verbose':
expect '.gitignore:1:one one
.gitignore:2:ignored-* ignored-but-in-index
.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore '
non-existent
one
not-ignored
ignored-but-in-index
ignored-and-untracked'
ok 191 - mix of file types at top-level with --no-index --verbose
expecting success of 0008.192 'mix of file types at top-level with --no-index --verbose -n':
expect ':: non-existent
.gitignore:1:one one
:: not-ignored
.gitignore:2:ignored-* ignored-but-in-index
.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore '
non-existent
one
not-ignored
ignored-but-in-index
ignored-and-untracked'
ok 192 - mix of file types at top-level with --no-index --verbose -n
expecting success of 0008.193 'mix of file types at top-level with --no-index --verbose --non-matching':
expect ':: non-existent
.gitignore:1:one one
:: not-ignored
.gitignore:2:ignored-* ignored-but-in-index
.gitignore:2:ignored-* ignored-and-untracked' &&
test_check_ignore '
non-existent
one
not-ignored
ignored-but-in-index
ignored-and-untracked'
ok 193 - mix of file types at top-level with --no-index --verbose --non-matching
expecting success of 0008.194 'non-existent file in subdir a/ not ignored':
expect "$expect" &&
eval "$code"
ok 194 - non-existent file in subdir a/ not ignored
expecting success of 0008.195 'non-existent file in subdir a/ not ignored with -q':
expect '' &&
test_check_ignore 'a/non-existent' 1
ok 195 - non-existent file in subdir a/ not ignored with -q
expecting success of 0008.196 'non-existent file in subdir a/ not ignored with --quiet':
expect '' &&
test_check_ignore 'a/non-existent' 1
ok 196 - non-existent file in subdir a/ not ignored with --quiet
expecting success of 0008.197 'non-existent file in subdir a/ not ignored with -v':
expect '' &&
test_check_ignore 'a/non-existent' 1
ok 197 - non-existent file in subdir a/ not ignored with -v
expecting success of 0008.198 'non-existent file in subdir a/ not ignored with -v -n':
expect ':: a/non-existent' &&
test_check_ignore 'a/non-existent' 1
ok 198 - non-existent file in subdir a/ not ignored with -v -n
expecting success of 0008.199 'non-existent file in subdir a/ not ignored with -v --non-matching':
expect ':: a/non-existent' &&
test_check_ignore 'a/non-existent' 1
ok 199 - non-existent file in subdir a/ not ignored with -v --non-matching
expecting success of 0008.200 'non-existent file in subdir a/ not ignored with --verbose':
expect '' &&
test_check_ignore 'a/non-existent' 1
ok 200 - non-existent file in subdir a/ not ignored with --verbose
expecting success of 0008.201 'non-existent file in subdir a/ not ignored with --verbose -n':
expect ':: a/non-existent' &&
test_check_ignore 'a/non-existent' 1
ok 201 - non-existent file in subdir a/ not ignored with --verbose -n
expecting success of 0008.202 'non-existent file in subdir a/ not ignored with --verbose --non-matching':
expect ':: a/non-existent' &&
test_check_ignore 'a/non-existent' 1
ok 202 - non-existent file in subdir a/ not ignored with --verbose --non-matching
expecting success of 0008.203 'non-existent file in subdir a/ not ignored with --no-index':
expect "$expect" &&
eval "$code"
ok 203 - non-existent file in subdir a/ not ignored with --no-index
expecting success of 0008.204 'non-existent file in subdir a/ not ignored with --no-index -q':
expect '' &&
test_check_ignore 'a/non-existent' 1
ok 204 - non-existent file in subdir a/ not ignored with --no-index -q
expecting success of 0008.205 'non-existent file in subdir a/ not ignored with --no-index --quiet':
expect '' &&
test_check_ignore 'a/non-existent' 1
ok 205 - non-existent file in subdir a/ not ignored with --no-index --quiet
expecting success of 0008.206 'non-existent file in subdir a/ not ignored with --no-index -v':
expect '' &&
test_check_ignore 'a/non-existent' 1
ok 206 - non-existent file in subdir a/ not ignored with --no-index -v
expecting success of 0008.207 'non-existent file in subdir a/ not ignored with --no-index -v -n':
expect ':: a/non-existent' &&
test_check_ignore 'a/non-existent' 1
ok 207 - non-existent file in subdir a/ not ignored with --no-index -v -n
expecting success of 0008.208 'non-existent file in subdir a/ not ignored with --no-index -v --non-matching':
expect ':: a/non-existent' &&
test_check_ignore 'a/non-existent' 1
ok 208 - non-existent file in subdir a/ not ignored with --no-index -v --non-matching
expecting success of 0008.209 'non-existent file in subdir a/ not ignored with --no-index --verbose':
expect '' &&
test_check_ignore 'a/non-existent' 1
ok 209 - non-existent file in subdir a/ not ignored with --no-index --verbose
expecting success of 0008.210 'non-existent file in subdir a/ not ignored with --no-index --verbose -n':
expect ':: a/non-existent' &&
test_check_ignore 'a/non-existent' 1
ok 210 - non-existent file in subdir a/ not ignored with --no-index --verbose -n
expecting success of 0008.211 'non-existent file in subdir a/ not ignored with --no-index --verbose --non-matching':
expect ':: a/non-existent' &&
test_check_ignore 'a/non-existent' 1
ok 211 - non-existent file in subdir a/ not ignored with --no-index --verbose --non-matching
expecting success of 0008.212 'non-existent file in subdir a/ ignored':
expect "$expect" &&
eval "$code"
ok 212 - non-existent file in subdir a/ ignored
expecting success of 0008.213 'non-existent file in subdir a/ ignored with -q':
expect '' &&
test_check_ignore 'a/one'
ok 213 - non-existent file in subdir a/ ignored with -q
expecting success of 0008.214 'non-existent file in subdir a/ ignored with --quiet':
expect '' &&
test_check_ignore 'a/one'
ok 214 - non-existent file in subdir a/ ignored with --quiet
expecting success of 0008.215 'non-existent file in subdir a/ ignored with -v':
expect '.gitignore:1:one a/one' &&
test_check_ignore 'a/one'
ok 215 - non-existent file in subdir a/ ignored with -v
expecting success of 0008.216 'non-existent file in subdir a/ ignored with -v -n':
expect '.gitignore:1:one a/one' &&
test_check_ignore 'a/one'
ok 216 - non-existent file in subdir a/ ignored with -v -n
expecting success of 0008.217 'non-existent file in subdir a/ ignored with -v --non-matching':
expect '.gitignore:1:one a/one' &&
test_check_ignore 'a/one'
ok 217 - non-existent file in subdir a/ ignored with -v --non-matching
expecting success of 0008.218 'non-existent file in subdir a/ ignored with --verbose':
expect '.gitignore:1:one a/one' &&
test_check_ignore 'a/one'
ok 218 - non-existent file in subdir a/ ignored with --verbose
expecting success of 0008.219 'non-existent file in subdir a/ ignored with --verbose -n':
expect '.gitignore:1:one a/one' &&
test_check_ignore 'a/one'
ok 219 - non-existent file in subdir a/ ignored with --verbose -n
expecting success of 0008.220 'non-existent file in subdir a/ ignored with --verbose --non-matching':
expect '.gitignore:1:one a/one' &&
test_check_ignore 'a/one'
ok 220 - non-existent file in subdir a/ ignored with --verbose --non-matching
expecting success of 0008.221 'non-existent file in subdir a/ ignored with --no-index':
expect "$expect" &&
eval "$code"
ok 221 - non-existent file in subdir a/ ignored with --no-index
expecting success of 0008.222 'non-existent file in subdir a/ ignored with --no-index -q':
expect '' &&
test_check_ignore 'a/one'
ok 222 - non-existent file in subdir a/ ignored with --no-index -q
expecting success of 0008.223 'non-existent file in subdir a/ ignored with --no-index --quiet':
expect '' &&
test_check_ignore 'a/one'
ok 223 - non-existent file in subdir a/ ignored with --no-index --quiet
expecting success of 0008.224 'non-existent file in subdir a/ ignored with --no-index -v':
expect '.gitignore:1:one a/one' &&
test_check_ignore 'a/one'
ok 224 - non-existent file in subdir a/ ignored with --no-index -v
expecting success of 0008.225 'non-existent file in subdir a/ ignored with --no-index -v -n':
expect '.gitignore:1:one a/one' &&
test_check_ignore 'a/one'
ok 225 - non-existent file in subdir a/ ignored with --no-index -v -n
expecting success of 0008.226 'non-existent file in subdir a/ ignored with --no-index -v --non-matching':
expect '.gitignore:1:one a/one' &&
test_check_ignore 'a/one'
ok 226 - non-existent file in subdir a/ ignored with --no-index -v --non-matching
expecting success of 0008.227 'non-existent file in subdir a/ ignored with --no-index --verbose':
expect '.gitignore:1:one a/one' &&
test_check_ignore 'a/one'
ok 227 - non-existent file in subdir a/ ignored with --no-index --verbose
expecting success of 0008.228 'non-existent file in subdir a/ ignored with --no-index --verbose -n':
expect '.gitignore:1:one a/one' &&
test_check_ignore 'a/one'
ok 228 - non-existent file in subdir a/ ignored with --no-index --verbose -n
expecting success of 0008.229 'non-existent file in subdir a/ ignored with --no-index --verbose --non-matching':
expect '.gitignore:1:one a/one' &&
test_check_ignore 'a/one'
ok 229 - non-existent file in subdir a/ ignored with --no-index --verbose --non-matching
expecting success of 0008.230 'existing untracked file in subdir a/ not ignored':
expect "$expect" &&
eval "$code"
ok 230 - existing untracked file in subdir a/ not ignored
expecting success of 0008.231 'existing untracked file in subdir a/ not ignored with -q':
expect '' &&
test_check_ignore 'a/not-ignored' 1
ok 231 - existing untracked file in subdir a/ not ignored with -q
expecting success of 0008.232 'existing untracked file in subdir a/ not ignored with --quiet':
expect '' &&
test_check_ignore 'a/not-ignored' 1
ok 232 - existing untracked file in subdir a/ not ignored with --quiet
expecting success of 0008.233 'existing untracked file in subdir a/ not ignored with -v':
expect '' &&
test_check_ignore 'a/not-ignored' 1
ok 233 - existing untracked file in subdir a/ not ignored with -v
expecting success of 0008.234 'existing untracked file in subdir a/ not ignored with -v -n':
expect ':: a/not-ignored' &&
test_check_ignore 'a/not-ignored' 1
ok 234 - existing untracked file in subdir a/ not ignored with -v -n
expecting success of 0008.235 'existing untracked file in subdir a/ not ignored with -v --non-matching':
expect ':: a/not-ignored' &&
test_check_ignore 'a/not-ignored' 1
ok 235 - existing untracked file in subdir a/ not ignored with -v --non-matching
expecting success of 0008.236 'existing untracked file in subdir a/ not ignored with --verbose':
expect '' &&
test_check_ignore 'a/not-ignored' 1
ok 236 - existing untracked file in subdir a/ not ignored with --verbose
expecting success of 0008.237 'existing untracked file in subdir a/ not ignored with --verbose -n':
expect ':: a/not-ignored' &&
test_check_ignore 'a/not-ignored' 1
ok 237 - existing untracked file in subdir a/ not ignored with --verbose -n
expecting success of 0008.238 'existing untracked file in subdir a/ not ignored with --verbose --non-matching':
expect ':: a/not-ignored' &&
test_check_ignore 'a/not-ignored' 1
ok 238 - existing untracked file in subdir a/ not ignored with --verbose --non-matching
expecting success of 0008.239 'existing untracked file in subdir a/ not ignored with --no-index':
expect "$expect" &&
eval "$code"
ok 239 - existing untracked file in subdir a/ not ignored with --no-index
expecting success of 0008.240 'existing untracked file in subdir a/ not ignored with --no-index -q':
expect '' &&
test_check_ignore 'a/not-ignored' 1
ok 240 - existing untracked file in subdir a/ not ignored with --no-index -q
expecting success of 0008.241 'existing untracked file in subdir a/ not ignored with --no-index --quiet':
expect '' &&
test_check_ignore 'a/not-ignored' 1
ok 241 - existing untracked file in subdir a/ not ignored with --no-index --quiet
expecting success of 0008.242 'existing untracked file in subdir a/ not ignored with --no-index -v':
expect '' &&
test_check_ignore 'a/not-ignored' 1
ok 242 - existing untracked file in subdir a/ not ignored with --no-index -v
expecting success of 0008.243 'existing untracked file in subdir a/ not ignored with --no-index -v -n':
expect ':: a/not-ignored' &&
test_check_ignore 'a/not-ignored' 1
ok 243 - existing untracked file in subdir a/ not ignored with --no-index -v -n
expecting success of 0008.244 'existing untracked file in subdir a/ not ignored with --no-index -v --non-matching':
expect ':: a/not-ignored' &&
test_check_ignore 'a/not-ignored' 1
ok 244 - existing untracked file in subdir a/ not ignored with --no-index -v --non-matching
expecting success of 0008.245 'existing untracked file in subdir a/ not ignored with --no-index --verbose':
expect '' &&
test_check_ignore 'a/not-ignored' 1
ok 245 - existing untracked file in subdir a/ not ignored with --no-index --verbose
expecting success of 0008.246 'existing untracked file in subdir a/ not ignored with --no-index --verbose -n':
expect ':: a/not-ignored' &&
test_check_ignore 'a/not-ignored' 1
ok 246 - existing untracked file in subdir a/ not ignored with --no-index --verbose -n
expecting success of 0008.247 'existing untracked file in subdir a/ not ignored with --no-index --verbose --non-matching':
expect ':: a/not-ignored' &&
test_check_ignore 'a/not-ignored' 1
ok 247 - existing untracked file in subdir a/ not ignored with --no-index --verbose --non-matching
expecting success of 0008.248 'existing tracked file in subdir a/ not ignored':
expect "$expect" &&
eval "$code"
ok 248 - existing tracked file in subdir a/ not ignored
expecting success of 0008.249 'existing tracked file in subdir a/ not ignored with -q':
expect '' &&
test_check_ignore 'a/ignored-but-in-index' 1
ok 249 - existing tracked file in subdir a/ not ignored with -q
expecting success of 0008.250 'existing tracked file in subdir a/ not ignored with --quiet':
expect '' &&
test_check_ignore 'a/ignored-but-in-index' 1
ok 250 - existing tracked file in subdir a/ not ignored with --quiet
expecting success of 0008.251 'existing tracked file in subdir a/ not ignored with -v':
expect '' &&
test_check_ignore 'a/ignored-but-in-index' 1
ok 251 - existing tracked file in subdir a/ not ignored with -v
expecting success of 0008.252 'existing tracked file in subdir a/ not ignored with -v -n':
expect ':: a/ignored-but-in-index' &&
test_check_ignore 'a/ignored-but-in-index' 1
ok 252 - existing tracked file in subdir a/ not ignored with -v -n
expecting success of 0008.253 'existing tracked file in subdir a/ not ignored with -v --non-matching':
expect ':: a/ignored-but-in-index' &&
test_check_ignore 'a/ignored-but-in-index' 1
ok 253 - existing tracked file in subdir a/ not ignored with -v --non-matching
expecting success of 0008.254 'existing tracked file in subdir a/ not ignored with --verbose':
expect '' &&
test_check_ignore 'a/ignored-but-in-index' 1
ok 254 - existing tracked file in subdir a/ not ignored with --verbose
expecting success of 0008.255 'existing tracked file in subdir a/ not ignored with --verbose -n':
expect ':: a/ignored-but-in-index' &&
test_check_ignore 'a/ignored-but-in-index' 1
ok 255 - existing tracked file in subdir a/ not ignored with --verbose -n
expecting success of 0008.256 'existing tracked file in subdir a/ not ignored with --verbose --non-matching':
expect ':: a/ignored-but-in-index' &&
test_check_ignore 'a/ignored-but-in-index' 1
ok 256 - existing tracked file in subdir a/ not ignored with --verbose --non-matching
expecting success of 0008.257 'existing tracked file in subdir a/ shown as ignored with --no-index':
expect "$expect" &&
eval "$code"
ok 257 - existing tracked file in subdir a/ shown as ignored with --no-index
expecting success of 0008.258 'existing tracked file in subdir a/ shown as ignored with --no-index -q':
expect '' &&
test_check_ignore 'a/ignored-but-in-index'
ok 258 - existing tracked file in subdir a/ shown as ignored with --no-index -q
expecting success of 0008.259 'existing tracked file in subdir a/ shown as ignored with --no-index --quiet':
expect '' &&
test_check_ignore 'a/ignored-but-in-index'
ok 259 - existing tracked file in subdir a/ shown as ignored with --no-index --quiet
expecting success of 0008.260 'existing tracked file in subdir a/ shown as ignored with --no-index -v':
expect '.gitignore:2:ignored-* a/ignored-but-in-index' &&
test_check_ignore 'a/ignored-but-in-index'
ok 260 - existing tracked file in subdir a/ shown as ignored with --no-index -v
expecting success of 0008.261 'existing tracked file in subdir a/ shown as ignored with --no-index -v -n':
expect '.gitignore:2:ignored-* a/ignored-but-in-index' &&
test_check_ignore 'a/ignored-but-in-index'
ok 261 - existing tracked file in subdir a/ shown as ignored with --no-index -v -n
expecting success of 0008.262 'existing tracked file in subdir a/ shown as ignored with --no-index -v --non-matching':
expect '.gitignore:2:ignored-* a/ignored-but-in-index' &&
test_check_ignore 'a/ignored-but-in-index'
ok 262 - existing tracked file in subdir a/ shown as ignored with --no-index -v --non-matching
expecting success of 0008.263 'existing tracked file in subdir a/ shown as ignored with --no-index --verbose':
expect '.gitignore:2:ignored-* a/ignored-but-in-index' &&
test_check_ignore 'a/ignored-but-in-index'
ok 263 - existing tracked file in subdir a/ shown as ignored with --no-index --verbose
expecting success of 0008.264 'existing tracked file in subdir a/ shown as ignored with --no-index --verbose -n':
expect '.gitignore:2:ignored-* a/ignored-but-in-index' &&
test_check_ignore 'a/ignored-but-in-index'
ok 264 - existing tracked file in subdir a/ shown as ignored with --no-index --verbose -n
expecting success of 0008.265 'existing tracked file in subdir a/ shown as ignored with --no-index --verbose --non-matching':
expect '.gitignore:2:ignored-* a/ignored-but-in-index' &&
test_check_ignore 'a/ignored-but-in-index'
ok 265 - existing tracked file in subdir a/ shown as ignored with --no-index --verbose --non-matching
expecting success of 0008.266 'existing untracked file in subdir a/ ignored':
expect "$expect" &&
eval "$code"
ok 266 - existing untracked file in subdir a/ ignored
expecting success of 0008.267 'existing untracked file in subdir a/ ignored with -q':
expect '' &&
test_check_ignore 'a/ignored-and-untracked'
ok 267 - existing untracked file in subdir a/ ignored with -q
expecting success of 0008.268 'existing untracked file in subdir a/ ignored with --quiet':
expect '' &&
test_check_ignore 'a/ignored-and-untracked'
ok 268 - existing untracked file in subdir a/ ignored with --quiet
expecting success of 0008.269 'existing untracked file in subdir a/ ignored with -v':
expect '.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore 'a/ignored-and-untracked'
ok 269 - existing untracked file in subdir a/ ignored with -v
expecting success of 0008.270 'existing untracked file in subdir a/ ignored with -v -n':
expect '.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore 'a/ignored-and-untracked'
ok 270 - existing untracked file in subdir a/ ignored with -v -n
expecting success of 0008.271 'existing untracked file in subdir a/ ignored with -v --non-matching':
expect '.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore 'a/ignored-and-untracked'
ok 271 - existing untracked file in subdir a/ ignored with -v --non-matching
expecting success of 0008.272 'existing untracked file in subdir a/ ignored with --verbose':
expect '.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore 'a/ignored-and-untracked'
ok 272 - existing untracked file in subdir a/ ignored with --verbose
expecting success of 0008.273 'existing untracked file in subdir a/ ignored with --verbose -n':
expect '.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore 'a/ignored-and-untracked'
ok 273 - existing untracked file in subdir a/ ignored with --verbose -n
expecting success of 0008.274 'existing untracked file in subdir a/ ignored with --verbose --non-matching':
expect '.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore 'a/ignored-and-untracked'
ok 274 - existing untracked file in subdir a/ ignored with --verbose --non-matching
expecting success of 0008.275 'existing untracked file in subdir a/ ignored with --no-index':
expect "$expect" &&
eval "$code"
ok 275 - existing untracked file in subdir a/ ignored with --no-index
expecting success of 0008.276 'existing untracked file in subdir a/ ignored with --no-index -q':
expect '' &&
test_check_ignore 'a/ignored-and-untracked'
ok 276 - existing untracked file in subdir a/ ignored with --no-index -q
expecting success of 0008.277 'existing untracked file in subdir a/ ignored with --no-index --quiet':
expect '' &&
test_check_ignore 'a/ignored-and-untracked'
ok 277 - existing untracked file in subdir a/ ignored with --no-index --quiet
expecting success of 0008.278 'existing untracked file in subdir a/ ignored with --no-index -v':
expect '.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore 'a/ignored-and-untracked'
ok 278 - existing untracked file in subdir a/ ignored with --no-index -v
expecting success of 0008.279 'existing untracked file in subdir a/ ignored with --no-index -v -n':
expect '.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore 'a/ignored-and-untracked'
ok 279 - existing untracked file in subdir a/ ignored with --no-index -v -n
expecting success of 0008.280 'existing untracked file in subdir a/ ignored with --no-index -v --non-matching':
expect '.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore 'a/ignored-and-untracked'
ok 280 - existing untracked file in subdir a/ ignored with --no-index -v --non-matching
expecting success of 0008.281 'existing untracked file in subdir a/ ignored with --no-index --verbose':
expect '.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore 'a/ignored-and-untracked'
ok 281 - existing untracked file in subdir a/ ignored with --no-index --verbose
expecting success of 0008.282 'existing untracked file in subdir a/ ignored with --no-index --verbose -n':
expect '.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore 'a/ignored-and-untracked'
ok 282 - existing untracked file in subdir a/ ignored with --no-index --verbose -n
expecting success of 0008.283 'existing untracked file in subdir a/ ignored with --no-index --verbose --non-matching':
expect '.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore 'a/ignored-and-untracked'
ok 283 - existing untracked file in subdir a/ ignored with --no-index --verbose --non-matching
expecting success of 0008.284 'mix of file types in subdir a/':
expect "$expect" &&
eval "$code"
ok 284 - mix of file types in subdir a/
expecting success of 0008.285 'mix of file types in subdir a/ with -v':
expect '.gitignore:1:one a/one
.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore '
a/non-existent
a/one
a/not-ignored
a/ignored-but-in-index
a/ignored-and-untracked'
ok 285 - mix of file types in subdir a/ with -v
expecting success of 0008.286 'mix of file types in subdir a/ with -v -n':
expect ':: a/non-existent
.gitignore:1:one a/one
:: a/not-ignored
:: a/ignored-but-in-index
.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore '
a/non-existent
a/one
a/not-ignored
a/ignored-but-in-index
a/ignored-and-untracked'
ok 286 - mix of file types in subdir a/ with -v -n
expecting success of 0008.287 'mix of file types in subdir a/ with -v --non-matching':
expect ':: a/non-existent
.gitignore:1:one a/one
:: a/not-ignored
:: a/ignored-but-in-index
.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore '
a/non-existent
a/one
a/not-ignored
a/ignored-but-in-index
a/ignored-and-untracked'
ok 287 - mix of file types in subdir a/ with -v --non-matching
expecting success of 0008.288 'mix of file types in subdir a/ with --verbose':
expect '.gitignore:1:one a/one
.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore '
a/non-existent
a/one
a/not-ignored
a/ignored-but-in-index
a/ignored-and-untracked'
ok 288 - mix of file types in subdir a/ with --verbose
expecting success of 0008.289 'mix of file types in subdir a/ with --verbose -n':
expect ':: a/non-existent
.gitignore:1:one a/one
:: a/not-ignored
:: a/ignored-but-in-index
.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore '
a/non-existent
a/one
a/not-ignored
a/ignored-but-in-index
a/ignored-and-untracked'
ok 289 - mix of file types in subdir a/ with --verbose -n
expecting success of 0008.290 'mix of file types in subdir a/ with --verbose --non-matching':
expect ':: a/non-existent
.gitignore:1:one a/one
:: a/not-ignored
:: a/ignored-but-in-index
.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore '
a/non-existent
a/one
a/not-ignored
a/ignored-but-in-index
a/ignored-and-untracked'
ok 290 - mix of file types in subdir a/ with --verbose --non-matching
expecting success of 0008.291 'mix of file types in subdir a/ with --no-index':
expect "$expect" &&
eval "$code"
ok 291 - mix of file types in subdir a/ with --no-index
expecting success of 0008.292 'mix of file types in subdir a/ with --no-index -v':
expect '.gitignore:1:one a/one
.gitignore:2:ignored-* a/ignored-but-in-index
.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore '
a/non-existent
a/one
a/not-ignored
a/ignored-but-in-index
a/ignored-and-untracked'
ok 292 - mix of file types in subdir a/ with --no-index -v
expecting success of 0008.293 'mix of file types in subdir a/ with --no-index -v -n':
expect ':: a/non-existent
.gitignore:1:one a/one
:: a/not-ignored
.gitignore:2:ignored-* a/ignored-but-in-index
.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore '
a/non-existent
a/one
a/not-ignored
a/ignored-but-in-index
a/ignored-and-untracked'
ok 293 - mix of file types in subdir a/ with --no-index -v -n
expecting success of 0008.294 'mix of file types in subdir a/ with --no-index -v --non-matching':
expect ':: a/non-existent
.gitignore:1:one a/one
:: a/not-ignored
.gitignore:2:ignored-* a/ignored-but-in-index
.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore '
a/non-existent
a/one
a/not-ignored
a/ignored-but-in-index
a/ignored-and-untracked'
ok 294 - mix of file types in subdir a/ with --no-index -v --non-matching
expecting success of 0008.295 'mix of file types in subdir a/ with --no-index --verbose':
expect '.gitignore:1:one a/one
.gitignore:2:ignored-* a/ignored-but-in-index
.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore '
a/non-existent
a/one
a/not-ignored
a/ignored-but-in-index
a/ignored-and-untracked'
ok 295 - mix of file types in subdir a/ with --no-index --verbose
expecting success of 0008.296 'mix of file types in subdir a/ with --no-index --verbose -n':
expect ':: a/non-existent
.gitignore:1:one a/one
:: a/not-ignored
.gitignore:2:ignored-* a/ignored-but-in-index
.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore '
a/non-existent
a/one
a/not-ignored
a/ignored-but-in-index
a/ignored-and-untracked'
ok 296 - mix of file types in subdir a/ with --no-index --verbose -n
expecting success of 0008.297 'mix of file types in subdir a/ with --no-index --verbose --non-matching':
expect ':: a/non-existent
.gitignore:1:one a/one
:: a/not-ignored
.gitignore:2:ignored-* a/ignored-but-in-index
.gitignore:2:ignored-* a/ignored-and-untracked' &&
test_check_ignore '
a/non-existent
a/one
a/not-ignored
a/ignored-but-in-index
a/ignored-and-untracked'
ok 297 - mix of file types in subdir a/ with --no-index --verbose --non-matching
expecting success of 0008.298 'sub-directory local ignore':
expect "a/3-three" &&
test_check_ignore "a/3-three a/three-not-this-one"
ok 298 - sub-directory local ignore
expecting success of 0008.299 'sub-directory local ignore with --verbose':
expect "a/.gitignore:2:*three a/3-three" &&
test_check_ignore "--verbose a/3-three a/three-not-this-one"
ok 299 - sub-directory local ignore with --verbose
expecting success of 0008.300 'local ignore inside a sub-directory':
expect "3-three" &&
(
cd a &&
test_check_ignore "3-three three-not-this-one"
)
ok 300 - local ignore inside a sub-directory
expecting success of 0008.301 'local ignore inside a sub-directory with --verbose':
expect "a/.gitignore:2:*three 3-three" &&
(
cd a &&
test_check_ignore "--verbose 3-three three-not-this-one"
)
ok 301 - local ignore inside a sub-directory with --verbose
expecting success of 0008.302 'nested include of negated pattern':
expect "" &&
test_check_ignore "a/b/one" 1
ok 302 - nested include of negated pattern
expecting success of 0008.303 'nested include of negated pattern with -q':
expect "" &&
test_check_ignore "-q a/b/one" 1
ok 303 - nested include of negated pattern with -q
expecting success of 0008.304 'nested include of negated pattern with -v':
expect "a/b/.gitignore:8:!on* a/b/one" &&
test_check_ignore "-v a/b/one" 0
ok 304 - nested include of negated pattern with -v
expecting success of 0008.305 'nested include of negated pattern with -v -n':
expect "a/b/.gitignore:8:!on* a/b/one" &&
test_check_ignore "-v -n a/b/one" 0
ok 305 - nested include of negated pattern with -v -n
expecting success of 0008.306 'ignored sub-directory':
expect "$expect" &&
eval "$code"
ok 306 - ignored sub-directory
expecting success of 0008.307 'ignored sub-directory with -q':
expect '' &&
test_check_ignore "a/b/ignored-dir"
ok 307 - ignored sub-directory with -q
expecting success of 0008.308 'ignored sub-directory with --quiet':
expect '' &&
test_check_ignore "a/b/ignored-dir"
ok 308 - ignored sub-directory with --quiet
expecting success of 0008.309 'ignored sub-directory with -v':
expect 'a/b/.gitignore:5:ignored-dir/ a/b/ignored-dir' &&
test_check_ignore "a/b/ignored-dir"
ok 309 - ignored sub-directory with -v
expecting success of 0008.310 'ignored sub-directory with -v -n':
expect 'a/b/.gitignore:5:ignored-dir/ a/b/ignored-dir' &&
test_check_ignore "a/b/ignored-dir"
ok 310 - ignored sub-directory with -v -n
expecting success of 0008.311 'ignored sub-directory with -v --non-matching':
expect 'a/b/.gitignore:5:ignored-dir/ a/b/ignored-dir' &&
test_check_ignore "a/b/ignored-dir"
ok 311 - ignored sub-directory with -v --non-matching
expecting success of 0008.312 'ignored sub-directory with --verbose':
expect 'a/b/.gitignore:5:ignored-dir/ a/b/ignored-dir' &&
test_check_ignore "a/b/ignored-dir"
ok 312 - ignored sub-directory with --verbose
expecting success of 0008.313 'ignored sub-directory with --verbose -n':
expect 'a/b/.gitignore:5:ignored-dir/ a/b/ignored-dir' &&
test_check_ignore "a/b/ignored-dir"
ok 313 - ignored sub-directory with --verbose -n
expecting success of 0008.314 'ignored sub-directory with --verbose --non-matching':
expect 'a/b/.gitignore:5:ignored-dir/ a/b/ignored-dir' &&
test_check_ignore "a/b/ignored-dir"
ok 314 - ignored sub-directory with --verbose --non-matching
expecting success of 0008.315 'multiple files inside ignored sub-directory':
expect_from_stdin <<-\EOF &&
a/b/ignored-dir/foo
a/b/ignored-dir/twoooo
a/b/ignored-dir/seven
EOF
test_check_ignore "a/b/ignored-dir/foo a/b/ignored-dir/twoooo a/b/ignored-dir/seven"
ok 315 - multiple files inside ignored sub-directory
expecting success of 0008.316 'multiple files inside ignored sub-directory with -v':
expect_from_stdin <<-\EOF &&
a/b/.gitignore:5:ignored-dir/ a/b/ignored-dir/foo
a/b/.gitignore:5:ignored-dir/ a/b/ignored-dir/twoooo
a/b/.gitignore:5:ignored-dir/ a/b/ignored-dir/seven
EOF
test_check_ignore "-v a/b/ignored-dir/foo a/b/ignored-dir/twoooo a/b/ignored-dir/seven"
ok 316 - multiple files inside ignored sub-directory with -v
expecting success of 0008.317 'cd to ignored sub-directory':
expect_from_stdin <<-\EOF &&
foo
twoooo
seven
../../one
EOF
(
cd a/b/ignored-dir &&
test_check_ignore "foo twoooo ../one seven ../../one"
)
ok 317 - cd to ignored sub-directory
expecting success of 0008.318 'cd to ignored sub-directory with -v':
expect_from_stdin <<-\EOF &&
a/b/.gitignore:5:ignored-dir/ foo
a/b/.gitignore:5:ignored-dir/ twoooo
a/b/.gitignore:8:!on* ../one
a/b/.gitignore:5:ignored-dir/ seven
.gitignore:1:one ../../one
EOF
(
cd a/b/ignored-dir &&
test_check_ignore "-v foo twoooo ../one seven ../../one"
)
ok 318 - cd to ignored sub-directory with -v
expecting success of 0008.319 'symlink':
expect "$expect" &&
eval "$code"
ok 319 - symlink
expecting success of 0008.320 'symlink with -q':
expect '' &&
test_check_ignore "a/symlink" 1
ok 320 - symlink with -q
expecting success of 0008.321 'symlink with --quiet':
expect '' &&
test_check_ignore "a/symlink" 1
ok 321 - symlink with --quiet
expecting success of 0008.322 'symlink with -v':
expect '' &&
test_check_ignore "a/symlink" 1
ok 322 - symlink with -v
expecting success of 0008.323 'symlink with -v -n':
expect ':: a/symlink' &&
test_check_ignore "a/symlink" 1
ok 323 - symlink with -v -n
expecting success of 0008.324 'symlink with -v --non-matching':
expect ':: a/symlink' &&
test_check_ignore "a/symlink" 1
ok 324 - symlink with -v --non-matching
expecting success of 0008.325 'symlink with --verbose':
expect '' &&
test_check_ignore "a/symlink" 1
ok 325 - symlink with --verbose
expecting success of 0008.326 'symlink with --verbose -n':
expect ':: a/symlink' &&
test_check_ignore "a/symlink" 1
ok 326 - symlink with --verbose -n
expecting success of 0008.327 'symlink with --verbose --non-matching':
expect ':: a/symlink' &&
test_check_ignore "a/symlink" 1
ok 327 - symlink with --verbose --non-matching
expecting success of 0008.328 'beyond a symlink':
expect "$expect" &&
eval "$code"
ok 328 - beyond a symlink
expecting success of 0008.329 'beyond a symlink with -q':
expect '' &&
test_check_ignore "a/symlink/foo" 128 &&
test_stderr "fatal: pathspec 'a/symlink/foo' is beyond a symbolic link"
ok 329 - beyond a symlink with -q
expecting success of 0008.330 'beyond a symlink with --quiet':
expect '' &&
test_check_ignore "a/symlink/foo" 128 &&
test_stderr "fatal: pathspec 'a/symlink/foo' is beyond a symbolic link"
ok 330 - beyond a symlink with --quiet
expecting success of 0008.331 'beyond a symlink with -v':
expect '' &&
test_check_ignore "a/symlink/foo" 128 &&
test_stderr "fatal: pathspec 'a/symlink/foo' is beyond a symbolic link"
ok 331 - beyond a symlink with -v
expecting success of 0008.332 'beyond a symlink with -v -n':
expect '' &&
test_check_ignore "a/symlink/foo" 128 &&
test_stderr "fatal: pathspec 'a/symlink/foo' is beyond a symbolic link"
ok 332 - beyond a symlink with -v -n
expecting success of 0008.333 'beyond a symlink with -v --non-matching':
expect '' &&
test_check_ignore "a/symlink/foo" 128 &&
test_stderr "fatal: pathspec 'a/symlink/foo' is beyond a symbolic link"
ok 333 - beyond a symlink with -v --non-matching
expecting success of 0008.334 'beyond a symlink with --verbose':
expect '' &&
test_check_ignore "a/symlink/foo" 128 &&
test_stderr "fatal: pathspec 'a/symlink/foo' is beyond a symbolic link"
ok 334 - beyond a symlink with --verbose
expecting success of 0008.335 'beyond a symlink with --verbose -n':
expect '' &&
test_check_ignore "a/symlink/foo" 128 &&
test_stderr "fatal: pathspec 'a/symlink/foo' is beyond a symbolic link"
ok 335 - beyond a symlink with --verbose -n
expecting success of 0008.336 'beyond a symlink with --verbose --non-matching':
expect '' &&
test_check_ignore "a/symlink/foo" 128 &&
test_stderr "fatal: pathspec 'a/symlink/foo' is beyond a symbolic link"
ok 336 - beyond a symlink with --verbose --non-matching
expecting success of 0008.337 'beyond a symlink from subdirectory':
expect "$expect" &&
eval "$code"
ok 337 - beyond a symlink from subdirectory
expecting success of 0008.338 'beyond a symlink from subdirectory with -q':
expect '' &&
(
cd a &&
test_check_ignore "symlink/foo" 128
) &&
test_stderr "fatal: pathspec 'symlink/foo' is beyond a symbolic link"
ok 338 - beyond a symlink from subdirectory with -q
expecting success of 0008.339 'beyond a symlink from subdirectory with --quiet':
expect '' &&
(
cd a &&
test_check_ignore "symlink/foo" 128
) &&
test_stderr "fatal: pathspec 'symlink/foo' is beyond a symbolic link"
ok 339 - beyond a symlink from subdirectory with --quiet
expecting success of 0008.340 'beyond a symlink from subdirectory with -v':
expect '' &&
(
cd a &&
test_check_ignore "symlink/foo" 128
) &&
test_stderr "fatal: pathspec 'symlink/foo' is beyond a symbolic link"
ok 340 - beyond a symlink from subdirectory with -v
expecting success of 0008.341 'beyond a symlink from subdirectory with -v -n':
expect '' &&
(
cd a &&
test_check_ignore "symlink/foo" 128
) &&
test_stderr "fatal: pathspec 'symlink/foo' is beyond a symbolic link"
ok 341 - beyond a symlink from subdirectory with -v -n
expecting success of 0008.342 'beyond a symlink from subdirectory with -v --non-matching':
expect '' &&
(
cd a &&
test_check_ignore "symlink/foo" 128
) &&
test_stderr "fatal: pathspec 'symlink/foo' is beyond a symbolic link"
ok 342 - beyond a symlink from subdirectory with -v --non-matching
expecting success of 0008.343 'beyond a symlink from subdirectory with --verbose':
expect '' &&
(
cd a &&
test_check_ignore "symlink/foo" 128
) &&
test_stderr "fatal: pathspec 'symlink/foo' is beyond a symbolic link"
ok 343 - beyond a symlink from subdirectory with --verbose
expecting success of 0008.344 'beyond a symlink from subdirectory with --verbose -n':
expect '' &&
(
cd a &&
test_check_ignore "symlink/foo" 128
) &&
test_stderr "fatal: pathspec 'symlink/foo' is beyond a symbolic link"
ok 344 - beyond a symlink from subdirectory with --verbose -n
expecting success of 0008.345 'beyond a symlink from subdirectory with --verbose --non-matching':
expect '' &&
(
cd a &&
test_check_ignore "symlink/foo" 128
) &&
test_stderr "fatal: pathspec 'symlink/foo' is beyond a symbolic link"
ok 345 - beyond a symlink from subdirectory with --verbose --non-matching
expecting success of 0008.346 'submodule':
expect "$expect" &&
eval "$code"
ok 346 - submodule
expecting success of 0008.347 'submodule with -q':
expect '' &&
test_check_ignore "a/submodule/one" 128 &&
test_stderr "fatal: Pathspec 'a/submodule/one' is in submodule 'a/submodule'"
ok 347 - submodule with -q
expecting success of 0008.348 'submodule with --quiet':
expect '' &&
test_check_ignore "a/submodule/one" 128 &&
test_stderr "fatal: Pathspec 'a/submodule/one' is in submodule 'a/submodule'"
ok 348 - submodule with --quiet
expecting success of 0008.349 'submodule with -v':
expect '' &&
test_check_ignore "a/submodule/one" 128 &&
test_stderr "fatal: Pathspec 'a/submodule/one' is in submodule 'a/submodule'"
ok 349 - submodule with -v
expecting success of 0008.350 'submodule with -v -n':
expect '' &&
test_check_ignore "a/submodule/one" 128 &&
test_stderr "fatal: Pathspec 'a/submodule/one' is in submodule 'a/submodule'"
ok 350 - submodule with -v -n
expecting success of 0008.351 'submodule with -v --non-matching':
expect '' &&
test_check_ignore "a/submodule/one" 128 &&
test_stderr "fatal: Pathspec 'a/submodule/one' is in submodule 'a/submodule'"
ok 351 - submodule with -v --non-matching
expecting success of 0008.352 'submodule with --verbose':
expect '' &&
test_check_ignore "a/submodule/one" 128 &&
test_stderr "fatal: Pathspec 'a/submodule/one' is in submodule 'a/submodule'"
ok 352 - submodule with --verbose
expecting success of 0008.353 'submodule with --verbose -n':
expect '' &&
test_check_ignore "a/submodule/one" 128 &&
test_stderr "fatal: Pathspec 'a/submodule/one' is in submodule 'a/submodule'"
ok 353 - submodule with --verbose -n
expecting success of 0008.354 'submodule with --verbose --non-matching':
expect '' &&
test_check_ignore "a/submodule/one" 128 &&
test_stderr "fatal: Pathspec 'a/submodule/one' is in submodule 'a/submodule'"
ok 354 - submodule with --verbose --non-matching
expecting success of 0008.355 'submodule from subdirectory':
expect "$expect" &&
eval "$code"
ok 355 - submodule from subdirectory
expecting success of 0008.356 'submodule from subdirectory with -q':
expect '' &&
(
cd a &&
test_check_ignore "submodule/one" 128
) &&
test_stderr "fatal: Pathspec 'submodule/one' is in submodule 'a/submodule'"
ok 356 - submodule from subdirectory with -q
expecting success of 0008.357 'submodule from subdirectory with --quiet':
expect '' &&
(
cd a &&
test_check_ignore "submodule/one" 128
) &&
test_stderr "fatal: Pathspec 'submodule/one' is in submodule 'a/submodule'"
ok 357 - submodule from subdirectory with --quiet
expecting success of 0008.358 'submodule from subdirectory with -v':
expect '' &&
(
cd a &&
test_check_ignore "submodule/one" 128
) &&
test_stderr "fatal: Pathspec 'submodule/one' is in submodule 'a/submodule'"
ok 358 - submodule from subdirectory with -v
expecting success of 0008.359 'submodule from subdirectory with -v -n':
expect '' &&
(
cd a &&
test_check_ignore "submodule/one" 128
) &&
test_stderr "fatal: Pathspec 'submodule/one' is in submodule 'a/submodule'"
ok 359 - submodule from subdirectory with -v -n
expecting success of 0008.360 'submodule from subdirectory with -v --non-matching':
expect '' &&
(
cd a &&
test_check_ignore "submodule/one" 128
) &&
test_stderr "fatal: Pathspec 'submodule/one' is in submodule 'a/submodule'"
ok 360 - submodule from subdirectory with -v --non-matching
expecting success of 0008.361 'submodule from subdirectory with --verbose':
expect '' &&
(
cd a &&
test_check_ignore "submodule/one" 128
) &&
test_stderr "fatal: Pathspec 'submodule/one' is in submodule 'a/submodule'"
ok 361 - submodule from subdirectory with --verbose
expecting success of 0008.362 'submodule from subdirectory with --verbose -n':
expect '' &&
(
cd a &&
test_check_ignore "submodule/one" 128
) &&
test_stderr "fatal: Pathspec 'submodule/one' is in submodule 'a/submodule'"
ok 362 - submodule from subdirectory with --verbose -n
expecting success of 0008.363 'submodule from subdirectory with --verbose --non-matching':
expect '' &&
(
cd a &&
test_check_ignore "submodule/one" 128
) &&
test_stderr "fatal: Pathspec 'submodule/one' is in submodule 'a/submodule'"
ok 363 - submodule from subdirectory with --verbose --non-matching
expecting success of 0008.364 'global ignore not yet enabled':
expect_from_stdin <<-\EOF &&
.git/info/exclude:1:per-repo per-repo
a/.gitignore:2:*three a/globalthree
.git/info/exclude:1:per-repo a/per-repo
EOF
test_check_ignore "-v globalone per-repo a/globalthree a/per-repo not-ignored a/globaltwo"
ok 364 - global ignore not yet enabled
expecting success of 0008.365 'global ignore':
enable_global_excludes &&
expect_from_stdin <<-\EOF &&
globalone
per-repo
globalthree
a/globalthree
a/per-repo
EOF
test_check_ignore "globalone per-repo globalthree a/globalthree a/per-repo not-ignored globaltwo"
ok 365 - global ignore
expecting success of 0008.366 'global ignore with -v':
enable_global_excludes &&
expect_from_stdin <<-EOF &&
$global_excludes:1:globalone globalone
.git/info/exclude:1:per-repo per-repo
$global_excludes:3:globalthree globalthree
a/.gitignore:2:*three a/globalthree
.git/info/exclude:1:per-repo a/per-repo
$global_excludes:2:!globaltwo globaltwo
EOF
test_check_ignore "-v globalone per-repo globalthree a/globalthree a/per-repo not-ignored globaltwo"
ok 366 - global ignore with -v
expecting success of 0008.367 '--stdin':
expect_from_stdin <expected-default &&
test_check_ignore "--stdin" <stdin
ok 367 - --stdin
expecting success of 0008.368 '--stdin -q':
expect "" &&
test_check_ignore "-q --stdin" <stdin
ok 368 - --stdin -q
expecting success of 0008.369 '--stdin -v':
expect_from_stdin <expected-verbose &&
test_check_ignore "-v --stdin" <stdin
ok 369 - --stdin -v
expecting success of 0008.370 '--stdin -z':
expect_from_stdin <expected-default0 &&
test_check_ignore '--stdin -z' <stdin0
ok 370 - --stdin -z
expecting success of 0008.371 '--stdin -z -q':
expect &&
test_check_ignore '-q --stdin -z' <stdin0
ok 371 - --stdin -z -q
expecting success of 0008.372 '--stdin -z -v':
expect_from_stdin <expected-verbose0 &&
test_check_ignore '-v --stdin -z' <stdin0
ok 372 - --stdin -z -v
expecting success of 0008.373 '-z --stdin':
expect_from_stdin <expected-default0 &&
test_check_ignore '-z --stdin' <stdin0
ok 373 - -z --stdin
expecting success of 0008.374 '-z --stdin -q':
expect &&
test_check_ignore '-q -z --stdin' <stdin0
ok 374 - -z --stdin -q
expecting success of 0008.375 '-z --stdin -v':
expect_from_stdin <expected-verbose0 &&
test_check_ignore '-v -z --stdin' <stdin0
ok 375 - -z --stdin -v
expecting success of 0008.376 '--stdin from subdirectory':
expect_from_stdin <expected-default &&
(
cd a &&
test_check_ignore "--stdin" <../stdin
)
ok 376 - --stdin from subdirectory
expecting success of 0008.377 '--stdin from subdirectory with -v':
expect_from_stdin <expected-verbose &&
(
cd a &&
test_check_ignore "--stdin -v" <../stdin
)
ok 377 - --stdin from subdirectory with -v
expecting success of 0008.378 '--stdin from subdirectory with -v -n':
expect_from_stdin <expected-all &&
(
cd a &&
test_check_ignore "--stdin -v -n" <../stdin
)
ok 378 - --stdin from subdirectory with -v -n
expecting success of 0008.379 '--stdin -z from subdirectory':
expect_from_stdin <expected-default0 &&
(
cd a &&
test_check_ignore "--stdin -z" <../stdin0
)
ok 379 - --stdin -z from subdirectory
expecting success of 0008.380 '--stdin -z from subdirectory with -v':
expect_from_stdin <expected-verbose0 &&
(
cd a &&
test_check_ignore "--stdin -z -v" <../stdin0
)
ok 380 - --stdin -z from subdirectory with -v
expecting success of 0008.381 '-z --stdin from subdirectory':
expect_from_stdin <expected-default0 &&
(
cd a &&
test_check_ignore "-z --stdin" <../stdin0
)
ok 381 - -z --stdin from subdirectory
expecting success of 0008.382 '-z --stdin from subdirectory with -v':
expect_from_stdin <expected-verbose0 &&
(
cd a &&
test_check_ignore "-z --stdin -v" <../stdin0
)
ok 382 - -z --stdin from subdirectory with -v
checking prerequisite: PIPE
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-PIPE" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-PIPE" &&
# test whether the filesystem supports FIFOs
test_have_prereq !MINGW,!CYGWIN &&
rm -f testfifo && mkfifo testfifo
)
prerequisite PIPE ok
expecting success of 0008.383 'streaming support for --stdin':
mkfifo in out &&
(git check-ignore -n -v --stdin <in >out &) &&
# We cannot just "echo >in" because check-ignore would get EOF
# after echo exited; instead we open the descriptor in our
# shell, and then echo to the fd. We make sure to close it at
# the end, so that the subprocess does get EOF and dies
# properly.
#
# Similarly, we must keep "out" open so that check-ignore does
# not ever get SIGPIPE trying to write to us. Not only would that
# produce incorrect results, but then there would be no writer on the
# other end of the pipe, and we would potentially block forever trying
# to open it.
exec 9>in &&
exec 8<out &&
test_when_finished "exec 9>&-" &&
test_when_finished "exec 8<&-" &&
echo >&9 one &&
read response <&8 &&
echo "$response" | grep "^\.gitignore:1:one one" &&
echo >&9 two &&
read response <&8 &&
echo "$response" | grep "^:: two"
.gitignore:1:one one
:: two
ok 383 - streaming support for --stdin
expecting success of 0008.384 'existing file and directory':
test_when_finished "rm one" &&
test_when_finished "rmdir top-level-dir" &&
>one &&
mkdir top-level-dir &&
git check-ignore one top-level-dir >actual &&
grep one actual &&
grep top-level-dir actual
one
top-level-dir
ok 384 - existing file and directory
expecting success of 0008.385 'existing directory and file':
test_when_finished "rm one" &&
test_when_finished "rmdir top-level-dir" &&
>one &&
mkdir top-level-dir &&
git check-ignore top-level-dir one >actual &&
grep one actual &&
grep top-level-dir actual
one
top-level-dir
ok 385 - existing directory and file
expecting success of 0008.386 'exact prefix matching (with root)':
test_when_finished rm -r a &&
mkdir -p a/git a/git-foo &&
touch a/git/foo a/git-foo/bar &&
echo /git/ >a/.gitignore &&
git check-ignore a/git a/git/foo a/git-foo a/git-foo/bar >actual &&
cat >expect <<-\EOF &&
a/git
a/git/foo
EOF
test_cmp expect actual
ok 386 - exact prefix matching (with root)
expecting success of 0008.387 'exact prefix matching (without root)':
test_when_finished rm -r a &&
mkdir -p a/git a/git-foo &&
touch a/git/foo a/git-foo/bar &&
echo git/ >a/.gitignore &&
git check-ignore a/git a/git/foo a/git-foo a/git-foo/bar >actual &&
cat >expect <<-\EOF &&
a/git
a/git/foo
EOF
test_cmp expect actual
ok 387 - exact prefix matching (without root)
expecting success of 0008.388 'directories and ** matches':
cat >.gitignore <<-\EOF &&
data/**
!data/**/
!data/**/*.txt
EOF
git check-ignore file \
data/file data/data1/file1 data/data1/file1.txt \
data/data2/file2 data/data2/file2.txt >actual &&
cat >expect <<-\EOF &&
data/file
data/data1/file1
data/data2/file2
EOF
test_cmp expect actual
ok 388 - directories and ** matches
expecting success of 0008.389 'trailing whitespace is ignored':
mkdir whitespace &&
>whitespace/trailing &&
>whitespace/untracked &&
echo "whitespace/trailing " >ignore &&
cat >expect <<EOF &&
whitespace/untracked
EOF
git ls-files -o -X ignore whitespace >actual 2>err &&
test_cmp expect actual &&
test_must_be_empty err
ok 389 - trailing whitespace is ignored
expecting success of 0008.390 'quoting allows trailing whitespace':
rm -rf whitespace &&
mkdir whitespace &&
>"whitespace/trailing " &&
>whitespace/untracked &&
echo "whitespace/trailing\\ \\ " >ignore &&
echo whitespace/untracked >expect &&
git ls-files -o -X ignore whitespace >actual 2>err &&
test_cmp expect actual &&
test_must_be_empty err
ok 390 - quoting allows trailing whitespace
expecting success of 0008.391 'correct handling of backslashes':
rm -rf whitespace &&
mkdir whitespace &&
>"whitespace/trailing 1 " &&
>"whitespace/trailing 2 \\\\" &&
>"whitespace/trailing 3 \\\\" &&
>"whitespace/trailing 4 \\ " &&
>"whitespace/trailing 5 \\ \\ " &&
>"whitespace/trailing 6 \\a\\" &&
>whitespace/untracked &&
sed -e "s/Z$//" >ignore <<-\EOF &&
whitespace/trailing 1 \ Z
whitespace/trailing 2 \\\\Z
whitespace/trailing 3 \\\\ Z
whitespace/trailing 4 \\\ Z
whitespace/trailing 5 \\ \\\ Z
whitespace/trailing 6 \\a\\Z
EOF
echo whitespace/untracked >expect &&
git ls-files -o -X ignore whitespace >actual 2>err &&
test_cmp expect actual &&
test_must_be_empty err
ok 391 - correct handling of backslashes
expecting success of 0008.392 'info/exclude trumps core.excludesfile':
echo >>global-excludes usually-ignored &&
echo >>.git/info/exclude "!usually-ignored" &&
>usually-ignored &&
echo "?? usually-ignored" >expect &&
git status --porcelain usually-ignored >actual &&
test_cmp expect actual
ok 392 - info/exclude trumps core.excludesfile
expecting success of 0008.393 'set up ignore file for symlink tests':
echo "*" >ignore &&
rm -f .gitignore .git/info/exclude
ok 393 - set up ignore file for symlink tests
expecting success of 0008.394 'symlinks respected in core.excludesFile':
test_when_finished "rm symlink" &&
ln -s ignore symlink &&
test_config core.excludesFile "$(pwd)/symlink" &&
echo file >expect &&
git check-ignore file >actual 2>err &&
test_cmp expect actual &&
test_must_be_empty err
ok 394 - symlinks respected in core.excludesFile
expecting success of 0008.395 'symlinks respected in info/exclude':
test_when_finished "rm .git/info/exclude" &&
ln -s ../../ignore .git/info/exclude &&
echo file >expect &&
git check-ignore file >actual 2>err &&
test_cmp expect actual &&
test_must_be_empty err
ok 395 - symlinks respected in info/exclude
expecting success of 0008.396 'symlinks not respected in-tree':
test_when_finished "rm .gitignore" &&
ln -s ignore .gitignore &&
mkdir subdir &&
ln -s ignore subdir/.gitignore &&
test_must_fail git check-ignore subdir/file >actual 2>err &&
test_must_be_empty actual &&
test_i18ngrep "unable to access.*gitignore" err
warning: unable to access '.gitignore': Too many levels of symbolic links
warning: unable to access 'subdir/.gitignore': Too many levels of symbolic links
ok 396 - symlinks not respected in-tree
# passed all 396 test(s)
1..396
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0022-crlf-rename.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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) d48b93e] Initial
Author: A U Thor <author@example.com>
1 file changed, 34 insertions(+)
create mode 100644 sample
[master 42002cb] Second
Author: A U Thor <author@example.com>
1 file changed, 34 insertions(+), 34 deletions(-)
rename sample => elpmas (94%)
ok 1 - setup
expecting success of 0022.2 'diff -M':
git diff-tree -M -r --name-status HEAD^ HEAD >tmp &&
sed -e "s/R[0-9]*/RNUM/" tmp >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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0023-crlf-am.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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: in the working copy of 'bar', LF will be replaced by CRLF the next time Git touches it
[master (root-commit) 1adb513] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 bar
ok 1 - setup
expecting success of 0023.2 'am':
git am -3 <patchfile &&
git diff-files --name-status --exit-code
Applying: test1
ok 2 - am
# passed all 2 test(s)
1..2
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0024-crlf-archive.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0024-crlf-archive/.git/
expecting success of 0024.1 'setup':
git config core.autocrlf true &&
printf "CRLF line ending\r\nAnd another\r\n" > sample &&
git add sample &&
test_tick &&
git commit -m Initial
[master (root-commit) 4f7f1aa] Initial
Author: A U Thor <author@example.com>
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 12.2.0 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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0020-crlf.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0020-crlf/.git/
expecting success of 0020.1 'setup':
git config core.autocrlf false &&
test_write_lines Hello world how are you >one &&
mkdir dir &&
test_write_lines I am very very fine thank you >dir/two &&
test_write_lines Oh here is NULQin text here | q_to_nul >three &&
git add . &&
git commit -m initial &&
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) &&
test_write_lines Some extra lines here >>one &&
git diff >patch.file &&
patched=$(git hash-object --stdin <one) &&
git read-tree --reset -u HEAD
[main (root-commit) 69d7d88] initial
Author: A U Thor <author@example.com>
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 &&
test_write_lines I am all CRLF | 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 &&
test_write_lines Oh here is CRLFQ in text | 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 &&
test_write_lines I am all LF >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 &&
test_write_lines Oh here is CRLFQ in text | 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 &&
test_write_lines I am all LF >doublewarn &&
git add doublewarn &&
git commit -m "nowarn" &&
test_write_lines Oh here is CRLFQ in text | q_to_cr >doublewarn &&
git add doublewarn 2>err &&
grep "CRLF will be replaced by LF" err >err.warnings &&
test_line_count = 1 err.warnings
[main 4d5dbcd] nowarn
Author: A U Thor <author@example.com>
1 file changed, 4 insertions(+)
create mode 100644 doublewarn
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 &&
test_write_lines I am all CRLF | 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 <one) &&
test "$two" = $(git hash-object --stdin <dir/two) &&
differs=$(git diff-index --cached HEAD) &&
verbose test -z "$differs"
ok 12 - checkout with autocrlf=true
expecting success of 0020.13 'checkout with autocrlf=input':
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 <one) &&
test "$two" = $(git hash-object --stdin <dir/two) &&
differs=$(git diff-index --cached HEAD) &&
verbose test -z "$differs"
ok 13 - checkout with autocrlf=input
expecting success of 0020.14 'apply patch (autocrlf=input)':
rm -f tmp one dir/two three &&
git config core.autocrlf input &&
git read-tree --reset -u HEAD &&
git apply patch.file &&
verbose test "$patched" = "$(git hash-object --stdin <one)"
ok 14 - apply patch (autocrlf=input)
expecting success of 0020.15 'apply patch --cached (autocrlf=input)':
rm -f tmp one dir/two three &&
git config core.autocrlf input &&
git read-tree --reset -u HEAD &&
git apply --cached patch.file &&
verbose test "$patched" = $(git rev-parse :one)
ok 15 - apply patch --cached (autocrlf=input)
expecting success of 0020.16 'apply patch --index (autocrlf=input)':
rm -f tmp one dir/two three &&
git config core.autocrlf input &&
git read-tree --reset -u HEAD &&
git apply --index patch.file &&
verbose test "$patched" = $(git rev-parse :one) &&
verbose test "$patched" = $(git hash-object --stdin <one)
ok 16 - apply patch --index (autocrlf=input)
expecting success of 0020.17 'apply patch (autocrlf=true)':
rm -f tmp one dir/two three &&
git config core.autocrlf true &&
git read-tree --reset -u HEAD &&
git apply patch.file &&
verbose test "$patched" = "$(remove_cr <one | git hash-object --stdin)"
ok 17 - apply patch (autocrlf=true)
expecting success of 0020.18 'apply patch --cached (autocrlf=true)':
rm -f tmp one dir/two three &&
git config core.autocrlf true &&
git read-tree --reset -u HEAD &&
git apply --cached patch.file &&
verbose test "$patched" = $(git rev-parse :one)
ok 18 - apply patch --cached (autocrlf=true)
expecting success of 0020.19 'apply patch --index (autocrlf=true)':
rm -f tmp one dir/two three &&
git config core.autocrlf true &&
git read-tree --reset -u HEAD &&
git apply --index patch.file &&
verbose test "$patched" = $(git rev-parse :one) &&
verbose test "$patched" = "$(remove_cr <one | git hash-object --stdin)"
ok 19 - apply patch --index (autocrlf=true)
expecting success of 0020.20 '.gitattributes says two is binary':
rm -f tmp one dir/two three &&
echo "two -crlf" >.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
[main 31eb750] Add .gitattributes
Author: A U Thor <author@example.com>
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 main~1 &&
git checkout main &&
test "$(git diff-files --raw)" = ""
[main 6d0586a] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[main f2c783e] second
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 .file
Note: switching to 'main~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 <new-branch-name>
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 'main'
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 main~1 &&
git checkout main &&
has_cr .file2
rm '.gitattributes'
[main edaea69] third
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 4 deletions(-)
create mode 100644 .file2
delete mode 100644 .gitattributes
Note: switching to 'main~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 <new-branch-name>
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
M three
Previous HEAD position was f2c783e second
Switched to branch 'main'
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 .????* * &&
test_write_lines I am all LF >alllf &&
test_write_lines Oh here is CRLFQ in text | q_to_cr >mixed &&
test_write_lines I am all CRLF | append_cr >allcrlf &&
git add -A . &&
git commit -m "alllf, allcrlf and mixed only" &&
git tag -a -m "message" autocrlf-checkpoint
[main 021c55b] alllf, allcrlf and mixed only
Author: A U Thor <author@example.com>
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
[main 6ebdedc] alllf2 added
Author: A U Thor <author@example.com>
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0025-crlf-renormalize.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <author@example.com>
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 >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0026-eol-config.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0026-eol-config/.git/
expecting success of 0026.1 'setup':
git config core.autocrlf false &&
echo "one text" > .gitattributes &&
test_write_lines Hello world how are you >one &&
test_write_lines I am very very fine thank you >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 <author@example.com>
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0000-basic.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 'subtest: 3 passing tests':
write_and_run_sub_test_lib_test full-pass <<-\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 - subtest: 3 passing tests
expecting success of 0000.6 'subtest: 2/3 tests passing':
write_and_run_sub_test_lib_test_err partial-pass <<-\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 - subtest: 2/3 tests passing
expecting success of 0000.7 'subtest: --immediate':
run_sub_test_lib_test_err partial-pass \
--immediate &&
check_sub_test_lib_test_err partial-pass \
<<-\EOF_OUT 3<<-EOF_ERR
> ok 1 - passing test #1
> not ok 2 - failing test #2
> # false
> 1..2
EOF_OUT
EOF_ERR
ok 7 - subtest: --immediate
expecting success of 0000.8 'subtest: a failing TODO test':
write_and_run_sub_test_lib_test failing-todo <<-\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 8 - subtest: a failing TODO test
expecting success of 0000.9 'subtest: a passing TODO test':
write_and_run_sub_test_lib_test passing-todo <<-\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 9 - subtest: a passing TODO test
expecting success of 0000.10 'subtest: 2 TODO tests, one passin':
write_and_run_sub_test_lib_test partially-passing-todos <<-\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 10 - subtest: 2 TODO tests, one passin
expecting success of 0000.11 'subtest: mixed results: pass, failure and a TODO test':
write_and_run_sub_test_lib_test_err mixed-results1 <<-\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 11 - subtest: mixed results: pass, failure and a TODO test
expecting success of 0000.12 'subtest: mixed results: a mixture of all possible results':
write_and_run_sub_test_lib_test_err mixed-results2 <<-\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 12 - subtest: mixed results: a mixture of all possible results
expecting success of 0000.13 'subtest: --verbose option':
write_and_run_sub_test_lib_test_err t1234-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 13 - subtest: --verbose option
expecting success of 0000.14 'subtest: --verbose-only option':
run_sub_test_lib_test_err \
t1234-verbose \
--verbose-only=2 &&
check_sub_test_lib_test t1234-verbose <<-\EOF
> ok 1 - passing test
> Z
> expecting success of 1234.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 14 - subtest: --verbose-only option
expecting success of 0000.15 'subtest: skip one with GIT_SKIP_TESTS':
(
run_sub_test_lib_test full-pass \
--skip="full.2" &&
check_sub_test_lib_test full-pass <<-\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 15 - subtest: skip one with GIT_SKIP_TESTS
expecting success of 0000.16 'subtest: skip several with GIT_SKIP_TESTS':
(
write_and_run_sub_test_lib_test git-skip-tests-several \
--skip="git.2 git.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 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 16 - subtest: skip several with GIT_SKIP_TESTS
expecting success of 0000.17 'subtest: sh pattern skipping with GIT_SKIP_TESTS':
(
run_sub_test_lib_test git-skip-tests-several \
--skip="git.[2-5]" &&
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 # 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 17 - subtest: sh pattern skipping with GIT_SKIP_TESTS
expecting success of 0000.18 'subtest: skip entire test suite with GIT_SKIP_TESTS':
(
GIT_SKIP_TESTS="git" && export GIT_SKIP_TESTS &&
run_sub_test_lib_test git-skip-tests-several \
--skip="git" &&
check_sub_test_lib_test git-skip-tests-several <<-\EOF
> 1..0 # SKIP skip all tests in git
EOF
)
ok 18 - subtest: skip entire test suite with GIT_SKIP_TESTS
expecting success of 0000.19 'subtest: GIT_SKIP_TESTS does not skip unmatched suite':
(
GIT_SKIP_TESTS="notgit" && export GIT_SKIP_TESTS &&
run_sub_test_lib_test full-pass \
--skip="notfull" &&
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 19 - subtest: GIT_SKIP_TESTS does not skip unmatched suite
expecting success of 0000.20 'subtest: --run basic':
run_sub_test_lib_test git-skip-tests-several --run="1,3,5" &&
check_sub_test_lib_test git-skip-tests-several <<-\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 20 - subtest: --run basic
expecting success of 0000.21 'subtest: --run with a range':
run_sub_test_lib_test git-skip-tests-several \
--run="1-3" &&
check_sub_test_lib_test git-skip-tests-several <<-\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 21 - subtest: --run with a range
expecting success of 0000.22 'subtest: --run with two ranges':
run_sub_test_lib_test git-skip-tests-several \
--run="1-2,5-6" &&
check_sub_test_lib_test git-skip-tests-several <<-\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 22 - subtest: --run with two ranges
expecting success of 0000.23 'subtest: --run with a left open range':
run_sub_test_lib_test git-skip-tests-several \
--run="-3" &&
check_sub_test_lib_test git-skip-tests-several <<-\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 23 - subtest: --run with a left open range
expecting success of 0000.24 'subtest: --run with a right open range':
run_sub_test_lib_test git-skip-tests-several \
--run="4-" &&
check_sub_test_lib_test git-skip-tests-several <<-\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 24 - subtest: --run with a right open range
expecting success of 0000.25 'subtest: --run with basic negation':
run_sub_test_lib_test git-skip-tests-several \
--run="!3" &&
check_sub_test_lib_test git-skip-tests-several <<-\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 25 - subtest: --run with basic negation
expecting success of 0000.26 'subtest: --run with two negations':
run_sub_test_lib_test git-skip-tests-several \
--run="!3,!6" &&
check_sub_test_lib_test git-skip-tests-several <<-\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 26 - subtest: --run with two negations
expecting success of 0000.27 'subtest: --run a range and negation':
run_sub_test_lib_test git-skip-tests-several \
--run="-4,!2" &&
check_sub_test_lib_test git-skip-tests-several <<-\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 27 - subtest: --run a range and negation
expecting success of 0000.28 'subtest: --run range negation':
run_sub_test_lib_test git-skip-tests-several \
--run="!1-3" &&
check_sub_test_lib_test git-skip-tests-several <<-\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 28 - subtest: --run range negation
expecting success of 0000.29 'subtest: --run include, exclude and include':
run_sub_test_lib_test git-skip-tests-several \
--run="1-5,!1-3,2" &&
check_sub_test_lib_test git-skip-tests-several <<-\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 - subtest: --run include, exclude and include
expecting success of 0000.30 'subtest: --run include, exclude and include, comma separated':
run_sub_test_lib_test git-skip-tests-several \
--run=1-5,!1-3,2 &&
check_sub_test_lib_test git-skip-tests-several <<-\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 30 - subtest: --run include, exclude and include, comma separated
expecting success of 0000.31 'subtest: --run exclude and include':
run_sub_test_lib_test git-skip-tests-several \
--run="!3-,5" &&
check_sub_test_lib_test git-skip-tests-several <<-\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 31 - subtest: --run exclude and include
expecting success of 0000.32 'subtest: --run empty selectors':
run_sub_test_lib_test git-skip-tests-several \
--run="1,,3,,,5" &&
check_sub_test_lib_test git-skip-tests-several <<-\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 32 - subtest: --run empty selectors
expecting success of 0000.33 'subtest: --run substring selector':
write_and_run_sub_test_lib_test run-substring-selector \
--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 33 - subtest: --run substring selector
expecting success of 0000.34 'subtest: --run keyword selection':
write_and_run_sub_test_lib_test_err run-inv-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: ${SQ}a-5${SQ}
EOF_ERR
ok 34 - subtest: --run keyword selection
expecting success of 0000.35 'subtest: --run invalid range end':
run_sub_test_lib_test_err run-inv-range-start \
--run="1-z" &&
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 end: ${SQ}1-z${SQ}
EOF_ERR
ok 35 - subtest: --run invalid range end
expecting success of 0000.36 'subtest: --invert-exit-code without --immediate':
run_sub_test_lib_test_err full-pass \
--invert-exit-code &&
check_sub_test_lib_test_err full-pass \
<<-\EOF_OUT 3<<-EOF_ERR
ok 1 - passing test #1
ok 2 - passing test #2
ok 3 - passing test #3
# passed all 3 test(s)
1..3
# faking up non-zero exit with --invert-exit-code
EOF_OUT
EOF_ERR
ok 36 - subtest: --invert-exit-code without --immediate
expecting success of 0000.37 'subtest: --invert-exit-code with --immediate: all passed':
run_sub_test_lib_test_err full-pass \
--invert-exit-code --immediate &&
check_sub_test_lib_test_err full-pass \
<<-\EOF_OUT 3<<-EOF_ERR
ok 1 - passing test #1
ok 2 - passing test #2
ok 3 - passing test #3
# passed all 3 test(s)
1..3
# faking up non-zero exit with --invert-exit-code
EOF_OUT
EOF_ERR
ok 37 - subtest: --invert-exit-code with --immediate: all passed
expecting success of 0000.38 'subtest: --invert-exit-code without --immediate: partial pass':
run_sub_test_lib_test partial-pass \
--invert-exit-code &&
check_sub_test_lib_test partial-pass <<-\EOF
ok 1 - passing test #1
not ok 2 - # TODO induced breakage (--invert-exit-code): failing test #2
# false
ok 3 - passing test #3
# failed 1 among 3 test(s)
1..3
# faked up failures as TODO & now exiting with 0 due to --invert-exit-code
EOF
ok 38 - subtest: --invert-exit-code without --immediate: partial pass
expecting success of 0000.39 'subtest: --invert-exit-code with --immediate: partial pass':
run_sub_test_lib_test partial-pass \
--invert-exit-code --immediate &&
check_sub_test_lib_test partial-pass \
<<-\EOF_OUT 3<<-EOF_ERR
ok 1 - passing test #1
not ok 2 - # TODO induced breakage (--invert-exit-code): failing test #2
# false
1..2
# faked up failures as TODO & now exiting with 0 due to --invert-exit-code
EOF_OUT
EOF_ERR
ok 39 - subtest: --invert-exit-code with --immediate: partial pass
expecting success of 0000.40 'subtest: --invert-exit-code --immediate: got a failure':
run_sub_test_lib_test partial-pass \
--invert-exit-code --immediate &&
check_sub_test_lib_test_err partial-pass \
<<-\EOF_OUT 3<<-EOF_ERR
ok 1 - passing test #1
not ok 2 - # TODO induced breakage (--invert-exit-code): failing test #2
# false
1..2
# faked up failures as TODO & now exiting with 0 due to --invert-exit-code
EOF_OUT
EOF_ERR
ok 40 - subtest: --invert-exit-code --immediate: got a failure
expecting success of 0000.41 'subtest: tests respect prerequisites':
write_and_run_sub_test_lib_test prereqs <<-\EOF &&
test_set_prereq HAVEIT
test_expect_success HAVEIT "prereq is satisfied" "true"
test_expect_success "have_prereq works" "
test_have_prereq HAVEIT
"
test_expect_success DONTHAVEIT "prereq not satisfied" "false"
test_set_prereq HAVETHIS
test_expect_success HAVETHIS,HAVEIT "multiple prereqs" "true"
test_expect_success HAVEIT,DONTHAVEIT "mixed prereqs (yes,no)" "false"
test_expect_success DONTHAVEIT,HAVEIT "mixed prereqs (no,yes)" "false"
test_done
EOF
check_sub_test_lib_test prereqs <<-\EOF
ok 1 - prereq is satisfied
ok 2 - have_prereq works
ok 3 # skip prereq not satisfied (missing DONTHAVEIT)
ok 4 - multiple prereqs
ok 5 # skip mixed prereqs (yes,no) (missing DONTHAVEIT of HAVEIT,DONTHAVEIT)
ok 6 # skip mixed prereqs (no,yes) (missing DONTHAVEIT of DONTHAVEIT,HAVEIT)
# passed all 6 test(s)
1..6
EOF
ok 41 - subtest: tests respect prerequisites
expecting success of 0000.42 'subtest: tests respect lazy prerequisites':
write_and_run_sub_test_lib_test lazy-prereqs <<-\EOF &&
test_lazy_prereq LAZY_TRUE true
test_expect_success LAZY_TRUE "lazy prereq is satisifed" "true"
test_expect_success !LAZY_TRUE "negative lazy prereq" "false"
test_lazy_prereq LAZY_FALSE false
test_expect_success LAZY_FALSE "lazy prereq not satisfied" "false"
test_expect_success !LAZY_FALSE "negative false prereq" "true"
test_done
EOF
check_sub_test_lib_test lazy-prereqs <<-\EOF
ok 1 - lazy prereq is satisifed
ok 2 # skip negative lazy prereq (missing !LAZY_TRUE)
ok 3 # skip lazy prereq not satisfied (missing LAZY_FALSE)
ok 4 - negative false prereq
# passed all 4 test(s)
1..4
EOF
ok 42 - subtest: tests respect lazy prerequisites
expecting success of 0000.43 'subtest: nested lazy prerequisites':
write_and_run_sub_test_lib_test nested-lazy <<-\EOF &&
test_lazy_prereq NESTED_INNER "
>inner &&
rm -f outer
"
test_lazy_prereq NESTED_PREREQ "
>outer &&
test_have_prereq NESTED_INNER &&
echo can create new file in cwd >file &&
test_path_is_file outer &&
test_path_is_missing inner
"
test_expect_success NESTED_PREREQ "evaluate nested prereq" "true"
test_done
EOF
check_sub_test_lib_test nested-lazy <<-\EOF
ok 1 - evaluate nested prereq
# passed all 1 test(s)
1..1
EOF
ok 43 - subtest: nested lazy prerequisites
expecting success of 0000.44 'subtest: lazy prereqs do not turn off tracing':
write_and_run_sub_test_lib_test lazy-prereq-and-tracing \
-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 44 - subtest: lazy prereqs do not turn off tracing
expecting success of 0000.45 'subtest: tests clean up after themselves':
write_and_run_sub_test_lib_test cleanup <<-\EOF &&
clean=no
test_expect_success "do cleanup" "
test_when_finished clean=yes
"
test_expect_success "cleanup happened" "
test $clean = yes
"
test_done
EOF
check_sub_test_lib_test cleanup <<-\EOF
ok 1 - do cleanup
ok 2 - cleanup happened
# passed all 2 test(s)
1..2
EOF
ok 45 - subtest: tests clean up after themselves
expecting success of 0000.46 'subtest: tests clean up even on failures':
write_and_run_sub_test_lib_test_err \
failing-cleanup <<-\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 46 - subtest: tests clean up even on failures
expecting success of 0000.47 'subtest: test_atexit is run':
write_and_run_sub_test_lib_test_err \
atexit-cleanup -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 47 - subtest: test_atexit is run
expecting success of 0000.48 'test_oid provides sane info by default':
test_oid zero >actual &&
grep "^00*\$" actual &&
rawsz="$(test_oid rawsz)" &&
hexsz="$(test_oid hexsz)" &&
# +1 accounts for the trailing newline
test $(( $hexsz + 1)) -eq $(wc -c <actual) &&
test $(( $rawsz * 2)) -eq "$hexsz"
0000000000000000000000000000000000000000
ok 48 - test_oid provides sane info by default
expecting success of 0000.49 'test_oid can look up data for SHA-1':
test_when_finished "test_detect_hash" &&
test_set_hash sha1 &&
test_oid zero >actual &&
grep "^00*\$" actual &&
rawsz="$(test_oid rawsz)" &&
hexsz="$(test_oid hexsz)" &&
test $(wc -c <actual) -eq 41 &&
test "$rawsz" -eq 20 &&
test "$hexsz" -eq 40
0000000000000000000000000000000000000000
ok 49 - test_oid can look up data for SHA-1
expecting success of 0000.50 'test_oid can look up data for SHA-256':
test_when_finished "test_detect_hash" &&
test_set_hash sha256 &&
test_oid zero >actual &&
grep "^00*\$" actual &&
rawsz="$(test_oid rawsz)" &&
hexsz="$(test_oid hexsz)" &&
test $(wc -c <actual) -eq 65 &&
test "$rawsz" -eq 32 &&
test "$hexsz" -eq 64
0000000000000000000000000000000000000000000000000000000000000000
ok 50 - test_oid can look up data for SHA-256
expecting success of 0000.51 'test_oid can look up data for a specified algorithm':
rawsz="$(test_oid --hash=sha1 rawsz)" &&
hexsz="$(test_oid --hash=sha1 hexsz)" &&
test "$rawsz" -eq 20 &&
test "$hexsz" -eq 40 &&
rawsz="$(test_oid --hash=sha256 rawsz)" &&
hexsz="$(test_oid --hash=sha256 hexsz)" &&
test "$rawsz" -eq 32 &&
test "$hexsz" -eq 64
ok 51 - test_oid can look up data for a specified algorithm
expecting success of 0000.52 'test_bool_env':
(
sane_unset envvar &&
test_bool_env envvar true &&
! test_bool_env envvar false &&
envvar= &&
export envvar &&
! test_bool_env envvar true &&
! test_bool_env envvar false &&
envvar=true &&
test_bool_env envvar true &&
test_bool_env envvar false &&
envvar=false &&
! test_bool_env envvar true &&
! test_bool_env envvar false &&
envvar=invalid &&
# When encountering an invalid bool value, test_bool_env
# prints its error message to the original stderr of the
# test script, hence the redirection of fd 7, and aborts
# with "exit 1", hence the subshell.
! ( test_bool_env envvar true ) 7>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 boolean config value 'invalid' for 'envvar'
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: test-tool env-helper --type=[bool|ulong] <options> <env-var>
--type <type> value is given this type
--default <value> 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 52 - test_bool_env
expecting success of 0000.53 '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 53 - git update-index without --add should fail adding
expecting success of 0000.54 'git update-index with --add should succeed':
git update-index --add should-be-empty
ok 54 - git update-index with --add should succeed
expecting success of 0000.55 'writing tree out with git write-tree':
tree=$(git write-tree)
ok 55 - writing tree out with git write-tree
expecting success of 0000.56 'validate object ID of a known tree':
test "$tree" = "$(test_oid simpletree)"
ok 56 - validate object ID of a known tree
expecting success of 0000.57 '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 57 - git update-index without --remove should fail removing
expecting success of 0000.58 'git update-index with --remove should be able to remove':
git update-index --remove should-be-empty
ok 58 - git update-index with --remove should be able to remove
expecting success of 0000.59 'git write-tree should be able to write an empty tree':
tree=$(git write-tree)
ok 59 - git write-tree should be able to write an empty tree
expecting success of 0000.60 'validate object ID of a known tree':
test "$tree" = $EMPTY_TREE
ok 60 - validate object ID of a known tree
expecting success of 0000.61 '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 61 - adding various types of objects with git update-index --add
expecting success of 0000.62 'showing stage with git ls-files --stage':
git ls-files --stage >current
ok 62 - showing stage with git ls-files --stage
expecting success of 0000.63 '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 63 - validate git ls-files output for a known tree
expecting success of 0000.64 'writing tree out with git write-tree':
tree=$(git write-tree)
ok 64 - writing tree out with git write-tree
expecting success of 0000.65 'validate object ID for a known tree':
test "$tree" = "$(test_oid root)"
ok 65 - validate object ID for a known tree
expecting success of 0000.66 'showing tree with git ls-tree':
git ls-tree $tree >current
ok 66 - showing tree with git ls-tree
expecting success of 0000.67 '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 67 - git ls-tree output for a known tree
expecting success of 0000.68 'showing tree with git ls-tree -r':
git ls-tree -r $tree >current
ok 68 - showing tree with git ls-tree -r
expecting success of 0000.69 '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 69 - git ls-tree -r output for a known tree
expecting success of 0000.70 'showing tree with git ls-tree -r -t':
git ls-tree -r -t $tree >current
ok 70 - showing tree with git ls-tree -r -t
expecting success of 0000.71 '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 71 - git ls-tree -r output for a known tree
expecting success of 0000.72 'writing partial tree out with git write-tree --prefix':
ptree=$(git write-tree --prefix=path3)
ok 72 - writing partial tree out with git write-tree --prefix
expecting success of 0000.73 'validate object ID for a known tree':
test "$ptree" = $(test_oid path3d)
ok 73 - validate object ID for a known tree
expecting success of 0000.74 'writing partial tree out with git write-tree --prefix':
ptree=$(git write-tree --prefix=path3/subp3)
ok 74 - writing partial tree out with git write-tree --prefix
expecting success of 0000.75 'validate object ID for a known tree':
test "$ptree" = $(test_oid subp3d)
ok 75 - validate object ID for a known tree
expecting success of 0000.76 '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 <badobjects
ok 76 - put invalid objects into the index
expecting success of 0000.77 'writing this tree without --missing-ok':
test_must_fail git write-tree
error: invalid object 100644 0000000000000000000000000000000000000001 for 'dir/file1'
fatal: git-write-tree: error building trees
ok 77 - writing this tree without --missing-ok
expecting success of 0000.78 'writing this tree with --missing-ok':
git write-tree --missing-ok
6718b1dd2231ec9ad958238ceeaa06fbfbefda94
ok 78 - writing this tree with --missing-ok
expecting success of 0000.79 'git read-tree followed by write-tree should be idempotent':
rm -f .git/index &&
git read-tree $tree &&
test_path_is_file .git/index &&
newtree=$(git write-tree) &&
test "$newtree" = "$tree"
ok 79 - git read-tree followed by write-tree should be idempotent
expecting success of 0000.80 'validate git diff-files output for a know cache/work tree state':
cat >expected <<EOF &&
:100644 100644 $(test_oid path0f) $ZERO_OID M path0
:120000 120000 $(test_oid path0s) $ZERO_OID M path0sym
:100644 100644 $(test_oid path2f) $ZERO_OID M path2/file2
:120000 120000 $(test_oid path2s) $ZERO_OID M path2/file2sym
:100644 100644 $(test_oid path3f) $ZERO_OID M path3/file3
:120000 120000 $(test_oid path3s) $ZERO_OID M path3/file3sym
:100644 100644 $(test_oid subp3f) $ZERO_OID M path3/subp3/file3
:120000 120000 $(test_oid subp3s) $ZERO_OID M path3/subp3/file3sym
EOF
git diff-files >current &&
test_cmp expected current
ok 80 - validate git diff-files output for a know cache/work tree state
expecting success of 0000.81 'git update-index --refresh should succeed':
git update-index --refresh
ok 81 - git update-index --refresh should succeed
expecting success of 0000.82 'no diff after checkout and git update-index --refresh':
git diff-files >current &&
cmp -s current /dev/null
ok 82 - no diff after checkout and git update-index --refresh
expecting success of 0000.83 'git commit-tree records the correct tree in a commit':
commit0=$(echo NO | git commit-tree $P) &&
git show --pretty=raw $commit0 >out &&
tree=$(sed -n -e "s/^tree //p" -e "/^author /q" out) &&
test "z$tree" = "z$P"
ok 83 - git commit-tree records the correct tree in a commit
expecting success of 0000.84 'git commit-tree records the correct parent in a commit':
commit1=$(echo NO | git commit-tree $P -p $commit0) &&
git show --pretty=raw $commit1 >out &&
parent=$(sed -n -e "s/^parent //p" -e "/^author /q" out) &&
test "z$commit0" = "z$parent"
ok 84 - git commit-tree records the correct parent in a commit
expecting success of 0000.85 'git commit-tree omits duplicated parent in a commit':
commit2=$(echo NO | git commit-tree $P -p $commit0 -p $commit0) &&
git show --pretty=raw $commit2 >out &&
cat >match.sed <<-\EOF &&
s/^parent //p
/^author /q
EOF
parent=$(sed -n -f match.sed out | sort -u) &&
test "z$commit0" = "z$parent" &&
git show --pretty=raw $commit2 >out &&
test_stdout_line_count = 1 sed -n -f match.sed out
error: duplicate parent d664f4b2f72710b8e019acf96c4773c8ac3993b8 ignored
ok 85 - git commit-tree omits duplicated parent in a commit
expecting success of 0000.86 'update-index D/F conflict':
mv path0 tmp &&
mv path2 path0 &&
mv tmp path2 &&
git update-index --add --replace path2 path0/file2 &&
git ls-files path0 >tmp &&
numpath0=$(wc -l <tmp) &&
test $numpath0 = 1
ok 86 - update-index D/F conflict
expecting success of 0000.87 '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 >tmp &&
(
sed -e "s/ .*/ /" tmp |
tr -d "\012" &&
echo "$a"
) | git update-index --index-info &&
git ls-files "a*" >tmp &&
len=$(wc -c <tmp) &&
test $len = 4098
ok 87 - very long name in the index handled sanely
expecting success of 0000.88 'test_must_fail on a failing git command':
test_must_fail git notacommand
git: 'notacommand' is not a git command. See 'git --help'.
ok 88 - test_must_fail on a failing git command
expecting success of 0000.89 '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 89 - test_must_fail on a failing git command with env
expecting success of 0000.90 '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 90 - test_must_fail rejects a non-git command
expecting success of 0000.91 '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 91 - test_must_fail rejects a non-git command with env
# passed all 91 test(s)
1..91
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0029-core-unsetenvvars.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0029-core-unsetenvvars/.git/
1..0 # SKIP skipping Windows-specific tests
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0028-working-tree-encoding.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16, considered utf-16):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
[main (root-commit) dfb2bb8] initial
Author: A U Thor <author@example.com>
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):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
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):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
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" &&
mkdir .git/info &&
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):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 0 [2m [0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 68 [2mh[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 0 [2m [0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 61 [2ma[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 0 [2m [0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 6c [2ml[0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 0 [2m [0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 6c [2ml[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 0 [2m [0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 6f [2mo[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 0 [2m [0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 20 [2m [0m | [2m25:[0m 0 [2m [0m | [2m26:[0m 0 [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 74 [2mt[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 0 [2m [0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 68 [2mh[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 0 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 65 [2me[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 0 [2m [0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 72 [2mr[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 0 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 65 [2me[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 0 [2m [0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 21 [2m![0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 0 [2m [0m | [2m51:[0m 0 [2m [0m | [2m52:[0m a [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 0 [2m [0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 63 [2mc[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 0 [2m [0m | [2m59:[0m 0 [2m [0m | [2m60:[0m 61 [2ma[0m | [2m61:[0m 0 [2m [0m | [2m62:[0m 0 [2m [0m | [2m63:[0m 0 [2m [0m
| [2m64:[0m 6e [2mn[0m | [2m65:[0m 0 [2m [0m | [2m66:[0m 0 [2m [0m | [2m67:[0m 0 [2m [0m | [2m68:[0m 20 [2m [0m | [2m69:[0m 0 [2m [0m | [2m70:[0m 0 [2m [0m | [2m71:[0m 0 [2m [0m
| [2m72:[0m 79 [2my[0m | [2m73:[0m 0 [2m [0m | [2m74:[0m 0 [2m [0m | [2m75:[0m 0 [2m [0m | [2m76:[0m 6f [2mo[0m | [2m77:[0m 0 [2m [0m | [2m78:[0m 0 [2m [0m | [2m79:[0m 0 [2m [0m
| [2m80:[0m 75 [2mu[0m | [2m81:[0m 0 [2m [0m | [2m82:[0m 0 [2m [0m | [2m83:[0m 0 [2m [0m | [2m84:[0m 20 [2m [0m | [2m85:[0m 0 [2m [0m | [2m86:[0m 0 [2m [0m | [2m87:[0m 0 [2m [0m
| [2m88:[0m 72 [2mr[0m | [2m89:[0m 0 [2m [0m | [2m90:[0m 0 [2m [0m | [2m91:[0m 0 [2m [0m | [2m92:[0m 65 [2me[0m | [2m93:[0m 0 [2m [0m | [2m94:[0m 0 [2m [0m | [2m95:[0m 0 [2m [0m
| [2m96:[0m 61 [2ma[0m | [2m97:[0m 0 [2m [0m | [2m98:[0m 0 [2m [0m | [2m99:[0m 0 [2m [0m | [2m100:[0m 64 [2md[0m | [2m101:[0m 0 [2m [0m | [2m102:[0m 0 [2m [0m | [2m103:[0m 0 [2m [0m
| [2m104:[0m 20 [2m [0m | [2m105:[0m 0 [2m [0m | [2m106:[0m 0 [2m [0m | [2m107:[0m 0 [2m [0m | [2m108:[0m 6d [2mm[0m | [2m109:[0m 0 [2m [0m | [2m110:[0m 0 [2m [0m | [2m111:[0m 0 [2m [0m
| [2m112:[0m 65 [2me[0m | [2m113:[0m 0 [2m [0m | [2m114:[0m 0 [2m [0m | [2m115:[0m 0 [2m [0m | [2m116:[0m 3f [2m?[0m | [2m117:[0m 0 [2m [0m | [2m118:[0m 0 [2m [0m | [2m119:[0m 0 [2m [0m
destination (test.utf32, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
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
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.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
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.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
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):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 6f [2mo[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 6e [2mn[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 65 [2me[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m d [2m [0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m a [2m [0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 74 [2mt[0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 77 [2mw[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 6f [2mo[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m d [2m [0m | [2m19:[0m 0 [2m [0m | [2m20:[0m a [2m [0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 74 [2mt[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 68 [2mh[0m | [2m25:[0m 0 [2m [0m | [2m26:[0m 72 [2mr[0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 65 [2me[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 65 [2me[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m d [2m [0m | [2m33:[0m 0 [2m [0m | [2m34:[0m a [2m [0m | [2m35:[0m 0 [2m [0m
destination (eol.utf16, considered UTF-8):
| [2m 0:[0m 6f [2mo[0m | [2m 1:[0m 6e [2mn[0m | [2m 2:[0m 65 [2me[0m | [2m 3:[0m d [2m [0m | [2m 4:[0m a [2m [0m | [2m 5:[0m 74 [2mt[0m | [2m 6:[0m 77 [2mw[0m | [2m 7:[0m 6f [2mo[0m
| [2m 8:[0m d [2m [0m | [2m 9:[0m a [2m [0m | [2m10:[0m 74 [2mt[0m | [2m11:[0m 68 [2mh[0m | [2m12:[0m 72 [2mr[0m | [2m13:[0m 65 [2me[0m | [2m14:[0m 65 [2me[0m | [2m15:[0m d [2m [0m
| [2m16:[0m a [2m [0m
warning: in the working copy of 'eol.utf16', CRLF will be replaced by LF the next time Git touches it
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (eol.utf16, considered utf-16):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 6f [2mo[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 6e [2mn[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 65 [2me[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m d [2m [0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m a [2m [0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 74 [2mt[0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 77 [2mw[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 6f [2mo[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m d [2m [0m | [2m19:[0m 0 [2m [0m | [2m20:[0m a [2m [0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 74 [2mt[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 68 [2mh[0m | [2m25:[0m 0 [2m [0m | [2m26:[0m 72 [2mr[0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 65 [2me[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 65 [2me[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m d [2m [0m | [2m33:[0m 0 [2m [0m | [2m34:[0m a [2m [0m | [2m35:[0m 0 [2m [0m
destination (eol.utf16, considered UTF-8):
| [2m 0:[0m 6f [2mo[0m | [2m 1:[0m 6e [2mn[0m | [2m 2:[0m 65 [2me[0m | [2m 3:[0m d [2m [0m | [2m 4:[0m a [2m [0m | [2m 5:[0m 74 [2mt[0m | [2m 6:[0m 77 [2mw[0m | [2m 7:[0m 6f [2mo[0m
| [2m 8:[0m d [2m [0m | [2m 9:[0m a [2m [0m | [2m10:[0m 74 [2mt[0m | [2m11:[0m 68 [2mh[0m | [2m12:[0m 72 [2mr[0m | [2m13:[0m 65 [2me[0m | [2m14:[0m 65 [2me[0m | [2m15:[0m d [2m [0m
| [2m16:[0m a [2m [0m
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
[main 85a4f33] eol
Author: A U Thor <author@example.com>
1 file changed, 3 insertions(+)
create mode 100644 eol.utf16
Updated 1 path from the index
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
Updated 1 path from the index
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
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.
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
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.
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
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):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 0 [2m [0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 0 [2m [0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6e [2mn[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 0 [2m [0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 65 [2me[0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 0 [2m [0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m d [2m [0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 0 [2m [0m | [2m19:[0m 0 [2m [0m | [2m20:[0m a [2m [0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 0 [2m [0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 74 [2mt[0m | [2m25:[0m 0 [2m [0m | [2m26:[0m 0 [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 77 [2mw[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 0 [2m [0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6f [2mo[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 0 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m d [2m [0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 0 [2m [0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m a [2m [0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 0 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 74 [2mt[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 0 [2m [0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 68 [2mh[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 0 [2m [0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 72 [2mr[0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 0 [2m [0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 0 [2m [0m | [2m59:[0m 0 [2m [0m | [2m60:[0m 65 [2me[0m | [2m61:[0m 0 [2m [0m | [2m62:[0m 0 [2m [0m | [2m63:[0m 0 [2m [0m
| [2m64:[0m d [2m [0m | [2m65:[0m 0 [2m [0m | [2m66:[0m 0 [2m [0m | [2m67:[0m 0 [2m [0m | [2m68:[0m a [2m [0m | [2m69:[0m 0 [2m [0m | [2m70:[0m 0 [2m [0m | [2m71:[0m 0 [2m [0m
destination (eol.utf32, considered UTF-8):
| [2m 0:[0m 6f [2mo[0m | [2m 1:[0m 6e [2mn[0m | [2m 2:[0m 65 [2me[0m | [2m 3:[0m d [2m [0m | [2m 4:[0m a [2m [0m | [2m 5:[0m 74 [2mt[0m | [2m 6:[0m 77 [2mw[0m | [2m 7:[0m 6f [2mo[0m
| [2m 8:[0m d [2m [0m | [2m 9:[0m a [2m [0m | [2m10:[0m 74 [2mt[0m | [2m11:[0m 68 [2mh[0m | [2m12:[0m 72 [2mr[0m | [2m13:[0m 65 [2me[0m | [2m14:[0m 65 [2me[0m | [2m15:[0m d [2m [0m
| [2m16:[0m a [2m [0m
warning: in the working copy of 'eol.utf32', CRLF will be replaced by LF the next time Git touches it
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (eol.utf32, considered utf-32):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 0 [2m [0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 0 [2m [0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6e [2mn[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 0 [2m [0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 65 [2me[0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 0 [2m [0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m d [2m [0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 0 [2m [0m | [2m19:[0m 0 [2m [0m | [2m20:[0m a [2m [0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 0 [2m [0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 74 [2mt[0m | [2m25:[0m 0 [2m [0m | [2m26:[0m 0 [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 77 [2mw[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 0 [2m [0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6f [2mo[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 0 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m d [2m [0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 0 [2m [0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m a [2m [0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 0 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 74 [2mt[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 0 [2m [0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 68 [2mh[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 0 [2m [0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 72 [2mr[0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 0 [2m [0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 0 [2m [0m | [2m59:[0m 0 [2m [0m | [2m60:[0m 65 [2me[0m | [2m61:[0m 0 [2m [0m | [2m62:[0m 0 [2m [0m | [2m63:[0m 0 [2m [0m
| [2m64:[0m d [2m [0m | [2m65:[0m 0 [2m [0m | [2m66:[0m 0 [2m [0m | [2m67:[0m 0 [2m [0m | [2m68:[0m a [2m [0m | [2m69:[0m 0 [2m [0m | [2m70:[0m 0 [2m [0m | [2m71:[0m 0 [2m [0m
destination (eol.utf32, considered UTF-8):
| [2m 0:[0m 6f [2mo[0m | [2m 1:[0m 6e [2mn[0m | [2m 2:[0m 65 [2me[0m | [2m 3:[0m d [2m [0m | [2m 4:[0m a [2m [0m | [2m 5:[0m 74 [2mt[0m | [2m 6:[0m 77 [2mw[0m | [2m 7:[0m 6f [2mo[0m
| [2m 8:[0m d [2m [0m | [2m 9:[0m a [2m [0m | [2m10:[0m 74 [2mt[0m | [2m11:[0m 68 [2mh[0m | [2m12:[0m 72 [2mr[0m | [2m13:[0m 65 [2me[0m | [2m14:[0m 65 [2me[0m | [2m15:[0m d [2m [0m
| [2m16:[0m a [2m [0m
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
[main 674dc3f] eol
Author: A U Thor <author@example.com>
1 file changed, 3 insertions(+)
create mode 100644 eol.utf32
Updated 1 path from the index
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
Updated 1 path from the index
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
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/main $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/main $COMMIT &&
git diff 2>err.out &&
test_i18ngrep "error: BOM is required" err.out
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
error: BOM is required in 'nonsense.utf16' if encoded as utf-16
error: BOM is required in 'nonsense.utf16' if encoded as utf-16
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
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 </dev/null
)
prerequisite ICONV_SHIFT_JIS ok
expecting success of 0028.15 'check roundtrip encoding':
test_when_finished "rm -f roundtrip.shift roundtrip.utf16" &&
test_when_finished "git reset --hard HEAD" &&
text="hallo there!\nroundtrip test here!" &&
printf "$text" | 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...
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
Unstaged changes after reset:
M .gitattributes
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
Unstaged changes after reset:
M .gitattributes
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
Unstaged changes after reset:
M .gitattributes
Checking roundtrip encoding for utf-16...
source (test.utf16lebom, considered UTF-16LE-BOM):
| [2m 0:[0m ff [2m [0m | [2m 1:[0m fe [2m [0m | [2m 2:[0m 68 [2mh[0m | [2m 3:[0m 0 [2m [0m | [2m 4:[0m 61 [2ma[0m | [2m 5:[0m 0 [2m [0m | [2m 6:[0m 6c [2ml[0m | [2m 7:[0m 0 [2m [0m
| [2m 8:[0m 6c [2ml[0m | [2m 9:[0m 0 [2m [0m | [2m10:[0m 6f [2mo[0m | [2m11:[0m 0 [2m [0m | [2m12:[0m 20 [2m [0m | [2m13:[0m 0 [2m [0m | [2m14:[0m 74 [2mt[0m | [2m15:[0m 0 [2m [0m
| [2m16:[0m 68 [2mh[0m | [2m17:[0m 0 [2m [0m | [2m18:[0m 65 [2me[0m | [2m19:[0m 0 [2m [0m | [2m20:[0m 72 [2mr[0m | [2m21:[0m 0 [2m [0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 0 [2m [0m
| [2m24:[0m 21 [2m![0m | [2m25:[0m 0 [2m [0m | [2m26:[0m a [2m [0m | [2m27:[0m 0 [2m [0m | [2m28:[0m 63 [2mc[0m | [2m29:[0m 0 [2m [0m | [2m30:[0m 61 [2ma[0m | [2m31:[0m 0 [2m [0m
| [2m32:[0m 6e [2mn[0m | [2m33:[0m 0 [2m [0m | [2m34:[0m 20 [2m [0m | [2m35:[0m 0 [2m [0m | [2m36:[0m 79 [2my[0m | [2m37:[0m 0 [2m [0m | [2m38:[0m 6f [2mo[0m | [2m39:[0m 0 [2m [0m
| [2m40:[0m 75 [2mu[0m | [2m41:[0m 0 [2m [0m | [2m42:[0m 20 [2m [0m | [2m43:[0m 0 [2m [0m | [2m44:[0m 72 [2mr[0m | [2m45:[0m 0 [2m [0m | [2m46:[0m 65 [2me[0m | [2m47:[0m 0 [2m [0m
| [2m48:[0m 61 [2ma[0m | [2m49:[0m 0 [2m [0m | [2m50:[0m 64 [2md[0m | [2m51:[0m 0 [2m [0m | [2m52:[0m 20 [2m [0m | [2m53:[0m 0 [2m [0m | [2m54:[0m 6d [2mm[0m | [2m55:[0m 0 [2m [0m
| [2m56:[0m 65 [2me[0m | [2m57:[0m 0 [2m [0m | [2m58:[0m 3f [2m?[0m | [2m59:[0m 0 [2m [0m
destination (test.utf16lebom, considered UTF-8):
| [2m 0:[0m 68 [2mh[0m | [2m 1:[0m 61 [2ma[0m | [2m 2:[0m 6c [2ml[0m | [2m 3:[0m 6c [2ml[0m | [2m 4:[0m 6f [2mo[0m | [2m 5:[0m 20 [2m [0m | [2m 6:[0m 74 [2mt[0m | [2m 7:[0m 68 [2mh[0m
| [2m 8:[0m 65 [2me[0m | [2m 9:[0m 72 [2mr[0m | [2m10:[0m 65 [2me[0m | [2m11:[0m 21 [2m![0m | [2m12:[0m a [2m [0m | [2m13:[0m 63 [2mc[0m | [2m14:[0m 61 [2ma[0m | [2m15:[0m 6e [2mn[0m
| [2m16:[0m 20 [2m [0m | [2m17:[0m 79 [2my[0m | [2m18:[0m 6f [2mo[0m | [2m19:[0m 75 [2mu[0m | [2m20:[0m 20 [2m [0m | [2m21:[0m 72 [2mr[0m | [2m22:[0m 65 [2me[0m | [2m23:[0m 61 [2ma[0m
| [2m24:[0m 64 [2md[0m | [2m25:[0m 20 [2m [0m | [2m26:[0m 6d [2mm[0m | [2m27:[0m 65 [2me[0m | [2m28:[0m 3f [2m?[0m
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
[main 7887505] Test data
Author: A U Thor <author@example.com>
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
[main dd0bb11] Test data
Author: A U Thor <author@example.com>
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
[main ccf08f2] Test data
Author: A U Thor <author@example.com>
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
[main bb82fa0] Test data
Author: A U Thor <author@example.com>
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
[main 434b0e2] Test data
Author: A U Thor <author@example.com>
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
[main 4ebb4c9] Test data
Author: A U Thor <author@example.com>
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
[main bfde51e] Test data
Author: A U Thor <author@example.com>
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0030-stripspace.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0030-stripspace/.git/
expecting success of 0030.1 'long lines without spaces should be unchanged':
echo "$ttt" >expect &&
git stripspace <expect >actual &&
test_cmp expect actual &&
echo "$ttt$ttt" >expect &&
git stripspace <expect >actual &&
test_cmp expect actual &&
echo "$ttt$ttt$ttt" >expect &&
git stripspace <expect >actual &&
test_cmp expect actual &&
echo "$ttt$ttt$ttt$ttt" >expect &&
git stripspace <expect >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 <expect >actual &&
test_cmp expect actual &&
echo "$sss$sss$ttt" >expect &&
git stripspace <expect >actual &&
test_cmp expect actual &&
echo "$sss$sss$sss$ttt" >expect &&
git stripspace <expect >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 <expect >actual &&
test_cmp expect actual &&
echo "$ttt$sss$sss$ttt" >expect &&
git stripspace <expect >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_stdout_line_count -gt 0 printf_git_stripspace "$ttt" &&
test_stdout_line_count -gt 0 printf_git_stripspace "$ttt$ttt" &&
test_stdout_line_count -gt 0 printf_git_stripspace "$ttt$ttt$ttt" &&
test_stdout_line_count -gt 0 printf_git_stripspace "$ttt$ttt$ttt$ttt"
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_stdout_line_count -gt 0 printf_git_stripspace "$ttt$sss" &&
test_stdout_line_count -gt 0 printf_git_stripspace "$ttt$ttt$sss" &&
test_stdout_line_count -gt 0 printf_git_stripspace "$ttt$ttt$ttt$sss" &&
test_stdout_line_count -gt 0 printf_git_stripspace "$ttt$sss$sss" &&
test_stdout_line_count -gt 0 printf_git_stripspace "$ttt$ttt$sss$sss" &&
test_stdout_line_count -gt 0 printf_git_stripspace "$ttt$sss$sss$sss"
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 >tmp &&
! grep " " tmp >/dev/null &&
printf "$ttt$ttt$sss" | git stripspace >tmp &&
! grep " " tmp >/dev/null &&
printf "$ttt$ttt$ttt$sss" | git stripspace >tmp &&
! grep " " tmp >/dev/null &&
printf "$ttt$sss$sss" | git stripspace >tmp &&
! grep " " tmp >/dev/null &&
printf "$ttt$ttt$sss$sss" | git stripspace >tmp &&
! grep " " tmp >/dev/null &&
printf "$ttt$sss$sss$sss" | git stripspace >tmp &&
! grep " " tmp >/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 >tmp &&
! grep " " tmp >/dev/null &&
echo "$ttt$ttt$sss" | git stripspace >tmp &&
! grep " " tmp >/dev/null &&
echo "$ttt$ttt$ttt$sss" | git stripspace >tmp &&
! grep " " tmp >/dev/null &&
echo "$ttt$sss$sss" | git stripspace >tmp &&
! grep " " tmp >/dev/null &&
echo "$ttt$ttt$sss$sss" | git stripspace >tmp &&
! grep " " tmp >/dev/null &&
echo "$ttt$sss$sss$sss" | git stripspace >tmp &&
! grep " " tmp >/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 >tmp &&
! grep " " tmp >/dev/null &&
printf "$sss" | git stripspace >tmp &&
! grep " " tmp >/dev/null &&
printf "$sss$sss" | git stripspace >tmp &&
! grep " " tmp >/dev/null &&
printf "$sss$sss$sss" | git stripspace >tmp &&
! grep " " tmp >/dev/null &&
printf "$sss$sss$sss$sss" | git stripspace >tmp &&
! grep " " tmp >/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0032-reftable-unittest.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0032-reftable-unittest/.git/
expecting success of 0032.1 'unittests':
TMPDIR=$(pwd) && export TMPDIR &&
test-tool reftable
running test_common_prefix
running test_parse_names_normal
running test_parse_names_drop_empty
running test_binsearch
running test_names_length
running test_reftable_log_record_equal
running test_reftable_log_record_roundtrip
running test_reftable_ref_record_roundtrip
running test_varint_roundtrip
running test_key_roundtrip
running test_common_prefix
running test_reftable_obj_record_roundtrip
running test_reftable_index_record_roundtrip
running test_u24_roundtrip
running test_block_read_write
running test_tree
running test_pq
running test_log_zlib_corruption
running test_corrupt_table
running test_corrupt_table_empty
running test_log_write_read
running test_write_key_order
running test_table_read_write_seek_linear_sha256
running test_log_buffer_size
running test_table_write_small_table
running test_buffer
running test_table_read_api
running test_table_read_write_sequential
running test_table_read_write_seek_linear
running test_table_read_write_seek_index
running test_table_refs_for_no_index
running test_table_refs_for_obj_index
running test_write_empty_key
running test_write_empty_table
running test_log_overflow
running test_write_object_id_length
running test_write_object_id_min_length
running test_merged_logs
running test_merged_between
running test_merged
running test_default_write_opts
running test_empty_add
running test_log2
running test_names_equal
running test_parse_names
running test_read_file
running test_reflog_expire
running test_reftable_stack_add
running test_reftable_stack_add_one
running test_reftable_stack_auto_compaction
running test_reftable_stack_compaction_concurrent
running test_reftable_stack_compaction_concurrent_clean
running test_reftable_stack_hash_id
running test_reftable_stack_lock_failure
running test_reftable_stack_log_normalize
running test_reftable_stack_tombstone
running test_reftable_stack_transaction_api
running test_reftable_stack_update_index_check
running test_reftable_stack_uptodate
running test_reftable_stack_validate_refname
running test_sizes_to_segments
running test_sizes_to_segments_all_equal
running test_sizes_to_segments_empty
running test_suggest_compaction_segment
running test_suggest_compaction_segment_nothing
running test_conflict
testing print coverage:
'g': log{refs/heads/master(42) han-wen <hanwen@google.com> 1577123507 0100
0202020202020202020202020202020202020202 => 0101010101010101010101010101010101010101
test
}
testing print coverage:
'g': log{refs/heads/master(22) delete
testing print coverage:
'g': log{branch(33) <> 0 0000
0404040404040404040404040404040404040404 => 0303030303030303030303030303030303030303
}
testing print coverage:
'r': ref{refs/heads/master(0) delete}
testing print coverage:
'r': ref{refs/heads/master(0) val 1 0100000000000000000000000000000000000000}
testing print coverage:
'r': ref{refs/heads/master(0) val 2 0100000000000000000000000000000000000000(T 0201000000000000000000000000000000000000)}
testing print coverage:
'r': ref{refs/heads/master(0) => target}
testing print coverage:
'o': prefix 0102030400 (len 5), offsets [1 2 3 ]
testing print coverage:
'o': prefix 0102030400 (len 5), offsets [1 2 3 4 500 600 700 800 9000 ]
testing print coverage:
'o': prefix 0102030400 (len 5), offsets []
testing print coverage:
'i': "refs/heads/master" 42
testing print functionality:
ref{HEAD(1) => master}
ok 1 - unittests
# passed all 1 test(s)
1..1
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0033-safe-directory.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t/trash directory.t0033-safe-directory'
ok 1 - safe.directory is not set
expecting success of 0033.2 'safe.directory on the command line':
git -c safe.directory="$(pwd)" status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
err
nothing added to commit but untracked files present (use "git add" to track)
ok 2 - safe.directory on the command line
expecting success of 0033.3 'safe.directory in the environment':
env GIT_CONFIG_COUNT=1 \
GIT_CONFIG_KEY_0="safe.directory" \
GIT_CONFIG_VALUE_0="$(pwd)" \
git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
err
nothing added to commit but untracked files present (use "git add" to track)
ok 3 - safe.directory in the environment
expecting success of 0033.4 'safe.directory in GIT_CONFIG_PARAMETERS':
env GIT_CONFIG_PARAMETERS="${SQ}safe.directory${SQ}=${SQ}$(pwd)${SQ}" \
git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
err
nothing added to commit but untracked files present (use "git add" to track)
ok 4 - safe.directory in GIT_CONFIG_PARAMETERS
expecting success of 0033.5 'ignoring safe.directory in repo config':
(
unset GIT_TEST_ASSUME_DIFFERENT_OWNER &&
git config safe.directory "$(pwd)"
) &&
expect_rejected_dir
fatal: detected dubious ownership in repository at '/<<PKGBUILDDIR>>/t/trash directory.t0033-safe-directory'
ok 5 - ignoring safe.directory in repo config
expecting success of 0033.6 'safe.directory does not match':
git config --global safe.directory bogus &&
expect_rejected_dir
fatal: detected dubious ownership in repository at '/<<PKGBUILDDIR>>/t/trash directory.t0033-safe-directory'
ok 6 - safe.directory does not match
expecting success of 0033.7 'path exist as different key':
git config --global foo.bar "$(pwd)" &&
expect_rejected_dir
fatal: detected dubious ownership in repository at '/<<PKGBUILDDIR>>/t/trash directory.t0033-safe-directory'
ok 7 - path exist as different key
expecting success of 0033.8 'safe.directory matches':
git config --global --add safe.directory "$(pwd)" &&
git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitconfig
err
nothing added to commit but untracked files present (use "git add" to track)
ok 8 - safe.directory matches
expecting success of 0033.9 'safe.directory matches, but is reset':
git config --global --add safe.directory "" &&
expect_rejected_dir
fatal: detected dubious ownership in repository at '/<<PKGBUILDDIR>>/t/trash directory.t0033-safe-directory'
ok 9 - safe.directory matches, but is reset
expecting success of 0033.10 'safe.directory=*':
git config --global --add safe.directory "*" &&
git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitconfig
err
nothing added to commit but untracked files present (use "git add" to track)
ok 10 - safe.directory=*
expecting success of 0033.11 'safe.directory=*, but is reset':
git config --global --add safe.directory "" &&
expect_rejected_dir
fatal: detected dubious ownership in repository at '/<<PKGBUILDDIR>>/t/trash directory.t0033-safe-directory'
ok 11 - safe.directory=*, but is reset
expecting success of 0033.12 'safe.directory in included file':
cat >gitconfig-include <<-EOF &&
[safe]
directory = "$(pwd)"
EOF
git config --global --add include.path "$(pwd)/gitconfig-include" &&
git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitconfig
err
gitconfig-include
nothing added to commit but untracked files present (use "git add" to track)
ok 12 - safe.directory in included file
# passed all 12 test(s)
1..12
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0034-root-safe-directory.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0035-safe-bare-repository.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0035-safe-bare-repository/.git/
expecting success of 0035.1 'setup bare repo in worktree':
git init outer-repo &&
git init --bare outer-repo/bare-repo
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0035-safe-bare-repository/outer-repo/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0035-safe-bare-repository/outer-repo/bare-repo/
ok 1 - setup bare repo in worktree
expecting success of 0035.2 'safe.bareRepository unset':
expect_accepted -C outer-repo/bare-repo
.
ok 2 - safe.bareRepository unset
expecting success of 0035.3 'safe.bareRepository=all':
test_config_global safe.bareRepository all &&
expect_accepted -C outer-repo/bare-repo
.
ok 3 - safe.bareRepository=all
expecting success of 0035.4 'safe.bareRepository=explicit':
test_config_global safe.bareRepository explicit &&
expect_rejected -C outer-repo/bare-repo
fatal: cannot use bare repository '/<<PKGBUILDDIR>>/t/trash directory.t0035-safe-bare-repository/outer-repo/bare-repo' (safe.bareRepository is 'explicit')
ok 4 - safe.bareRepository=explicit
expecting success of 0035.5 'safe.bareRepository in the repository':
# safe.bareRepository must not be "explicit", otherwise
# git config fails with "fatal: not in a git directory" (like
# safe.directory)
test_config -C outer-repo/bare-repo safe.bareRepository \
all &&
test_config_global safe.bareRepository explicit &&
expect_rejected -C outer-repo/bare-repo
fatal: cannot use bare repository '/<<PKGBUILDDIR>>/t/trash directory.t0035-safe-bare-repository/outer-repo/bare-repo' (safe.bareRepository is 'explicit')
ok 5 - safe.bareRepository in the repository
expecting success of 0035.6 'safe.bareRepository on the command line':
test_config_global safe.bareRepository explicit &&
expect_accepted -C outer-repo/bare-repo \
-c safe.bareRepository=all
.
ok 6 - safe.bareRepository on the command line
expecting success of 0035.7 'safe.bareRepository in included file':
cat >gitconfig-include <<-\EOF &&
[safe]
bareRepository = explicit
EOF
git config --global --add include.path "$(pwd)/gitconfig-include" &&
expect_rejected -C outer-repo/bare-repo
fatal: cannot use bare repository '/<<PKGBUILDDIR>>/t/trash directory.t0035-safe-bare-repository/outer-repo/bare-repo' (safe.bareRepository is 'explicit')
ok 7 - safe.bareRepository in included file
# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0041-usage.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0041-usage/.git/
expecting success of 0041.1 'setup ':
test_commit "v1.0"
[main (root-commit) 843b676] v1.0
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 v1.0.t
ok 1 - setup
expecting success of 0041.2 'tag --contains <existent_tag>':
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 <existent_tag>
expecting success of 0041.3 'tag --contains <inexistent_tag>':
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
error: malformed object name notag
ok 3 - tag --contains <inexistent_tag>
expecting success of 0041.4 'tag --no-contains <existent_tag>':
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 <existent_tag>
expecting success of 0041.5 'tag --no-contains <inexistent_tag>':
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 <inexistent_tag>
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 <key-id>] [-f] [-m <msg> | -F <file>] [-e]
ok 6 - tag usage error
expecting success of 0041.7 'branch --contains <existent_commit>':
git branch --contains "main" >actual 2>actual.err &&
test_i18ngrep "main" actual &&
test_line_count = 0 actual.err
* main
ok 7 - branch --contains <existent_commit>
expecting success of 0041.8 'branch --contains <inexistent_commit>':
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 <inexistent_commit>
expecting success of 0041.9 'branch --no-contains <existent_commit>':
git branch --no-contains "main" >actual 2>actual.err &&
test_line_count = 0 actual &&
test_line_count = 0 actual.err
ok 9 - branch --no-contains <existent_commit>
expecting success of 0041.10 'branch --no-contains <inexistent_commit>':
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 <inexistent_commit>
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 [<options>] [-r | -a] [--merged] [--no-merged]
ok 11 - branch usage error
expecting success of 0041.12 'for-each-ref --contains <existent_object>':
git for-each-ref --contains "main" >actual 2>actual.err &&
test_line_count = 2 actual &&
test_line_count = 0 actual.err
ok 12 - for-each-ref --contains <existent_object>
expecting success of 0041.13 'for-each-ref --contains <inexistent_object>':
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 <inexistent_object>
expecting success of 0041.14 'for-each-ref --no-contains <existent_object>':
git for-each-ref --no-contains "main" >actual 2>actual.err &&
test_line_count = 0 actual &&
test_line_count = 0 actual.err
ok 14 - for-each-ref --no-contains <existent_object>
expecting success of 0041.15 'for-each-ref --no-contains <inexistent_object>':
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 <inexistent_object>
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 [<options>] [<pattern>]
ok 16 - for-each-ref usage error
# passed all 16 test(s)
1..16
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0040-parse-options.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0040-parse-options/.git/
expecting success of 0040.1 'test help':
test_must_fail test-tool parse-options -h >output 2>output.err &&
test_must_be_empty output.err &&
test_cmp expect output
ok 1 - test help
expecting success of 0040.2 'OPT_BOOL() #1': check boolean: 1 --yes
ok 2 - OPT_BOOL() #1
expecting success of 0040.3 'OPT_BOOL() #2': check boolean: 1 --no-doubt
ok 3 - OPT_BOOL() #2
expecting success of 0040.4 'OPT_BOOL() #3': check boolean: 1 -D
ok 4 - OPT_BOOL() #3
expecting success of 0040.5 'OPT_BOOL() #4': check boolean: 1 --no-fear
ok 5 - OPT_BOOL() #4
expecting success of 0040.6 'OPT_BOOL() #5': check boolean: 1 -B
ok 6 - OPT_BOOL() #5
expecting success of 0040.7 'OPT_BOOL() is idempotent #1': check boolean: 1 --yes --yes
ok 7 - OPT_BOOL() is idempotent #1
expecting success of 0040.8 'OPT_BOOL() is idempotent #2': check boolean: 1 -DB
ok 8 - OPT_BOOL() is idempotent #2
expecting success of 0040.9 'OPT_BOOL() negation #1': check boolean: 0 -D --no-yes
ok 9 - OPT_BOOL() negation #1
expecting success of 0040.10 'OPT_BOOL() negation #2': check boolean: 0 -D --no-no-doubt
ok 10 - OPT_BOOL() negation #2
expecting success of 0040.11 'OPT_BOOL() no negation #1': check_unknown_i18n --fear
ok 11 - OPT_BOOL() no negation #1
expecting success of 0040.12 'OPT_BOOL() no negation #2': check_unknown_i18n --no-no-fear
ok 12 - OPT_BOOL() no negation #2
expecting success of 0040.13 'OPT_BOOL() positivation': check boolean: 0 -D --doubt
ok 13 - OPT_BOOL() positivation
expecting success of 0040.14 'OPT_INT() negative': check integer: -2345 -i -2345
ok 14 - OPT_INT() negative
expecting success of 0040.15 'OPT_MAGNITUDE() simple':
check magnitude: 2345678 -m 2345678
ok 15 - OPT_MAGNITUDE() simple
expecting success of 0040.16 'OPT_MAGNITUDE() kilo':
check magnitude: 239616 -m 234k
ok 16 - OPT_MAGNITUDE() kilo
expecting success of 0040.17 'OPT_MAGNITUDE() mega':
check magnitude: 104857600 -m 100m
ok 17 - OPT_MAGNITUDE() mega
expecting success of 0040.18 'OPT_MAGNITUDE() giga':
check magnitude: 1073741824 -m 1g
ok 18 - OPT_MAGNITUDE() giga
expecting success of 0040.19 'OPT_MAGNITUDE() 3giga':
check magnitude: 3221225472 -m 3g
ok 19 - OPT_MAGNITUDE() 3giga
expecting success of 0040.20 'short options':
test-tool parse-options -s123 -b -i 1729 -m 16k -b -vv -n -F my.file \
>output 2>output.err &&
test_cmp expect output &&
test_must_be_empty output.err
ok 20 - short options
expecting success of 0040.21 'long options':
test-tool parse-options --boolean --integer 1729 --magnitude 16k \
--boolean --string2=321 --verbose --verbose --no-dry-run \
--abbrev=10 --file fi.le --obsolete \
>output 2>output.err &&
test_must_be_empty output.err &&
test_cmp expect output
ok 21 - long options
expecting success of 0040.22 'missing required value':
cat >expect <<-\EOF &&
error: switch `s' requires a value
EOF
test_expect_code 129 test-tool parse-options -s 2>actual &&
test_cmp expect actual &&
cat >expect <<-\EOF &&
error: option `string' requires a value
EOF
test_expect_code 129 test-tool parse-options --string 2>actual &&
test_cmp expect actual &&
cat >expect <<-\EOF &&
error: option `file' requires a value
EOF
test_expect_code 129 test-tool parse-options --file 2>actual &&
test_cmp expect actual
ok 22 - missing required value
expecting success of 0040.23 'superfluous value provided: boolean':
cat >expect <<-\EOF &&
error: option `yes' takes no value
EOF
test_expect_code 129 test-tool parse-options --yes=hi 2>actual &&
test_cmp expect actual &&
cat >expect <<-\EOF &&
error: option `no-yes' takes no value
EOF
test_expect_code 129 test-tool parse-options --no-yes=hi 2>actual &&
test_cmp expect actual
ok 23 - superfluous value provided: boolean
expecting success of 0040.24 'superfluous value provided: cmdmode':
cat >expect <<-\EOF &&
error: option `mode1' takes no value
EOF
test_expect_code 129 test-tool parse-options --mode1=hi 2>actual &&
test_cmp expect actual
ok 24 - superfluous value provided: cmdmode
expecting success of 0040.25 'intermingled arguments':
test-tool parse-options a1 --string 123 b1 --boolean -j 13 -- --boolean \
>output 2>output.err &&
test_must_be_empty output.err &&
test_cmp expect output
ok 25 - intermingled arguments
expecting success of 0040.26 'unambiguously abbreviated option':
GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS=false \
test-tool parse-options --int 2 --boolean --no-bo >output 2>output.err &&
test_must_be_empty output.err &&
test_cmp expect output
ok 26 - unambiguously abbreviated option
expecting success of 0040.27 'unambiguously abbreviated option with "="':
GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS=false \
test-tool parse-options --expect="integer: 2" --int=2
ok 27 - unambiguously abbreviated option with "="
expecting success of 0040.28 'ambiguously abbreviated option':
test_expect_code 129 env GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS=false \
test-tool parse-options --strin 123
error: ambiguous option: strin (could be --string or --string2)
usage: test-tool parse-options <options>
A helper function for the parse-options API.
--yes get a boolean
-D, --no-doubt begins with 'no-'
-B, --no-fear be brave
-b, --boolean increment by one
-4, --or4 bitwise-or boolean with ...0100
--neg-or4 same as --no-or4
-i, --integer <n> get a integer
-j <n> get a integer, too
-m, --magnitude <n> get a magnitude
--set23 set integer to 23
--mode1 set integer to 1 (cmdmode option)
--mode2 set integer to 2 (cmdmode option)
-L, --length <str> get length of <str>
-F, --file <file> set file to <file>
String options
-s, --string <string>
get a string
--string2 <str> get another string
--st <st> get another string (pervert ordering)
-o <str> get another string
--list <str> add str to list
Magic arguments
-NUM set integer to NUM
+ same as -b
--ambiguous positive ambiguity
--no-ambiguous negative ambiguity
Standard options
--abbrev[=<n>] use <n> digits to display object names
-v, --verbose be verbose
-n, --dry-run dry run
-q, --quiet be quiet
--expect <string> expected output in the variable dump
Alias
-A, --alias-source <string>
get a string
-Z, --alias-target <string>
alias of --alias-source
ok 28 - ambiguously abbreviated option
expecting success of 0040.29 'non ambiguous option (after two options it abbreviates)':
GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS=false \
test-tool parse-options --expect="string: 123" --st 123
ok 29 - non ambiguous option (after two options it abbreviates)
expecting success of 0040.30 'Alias options do not contribute to abbreviation':
test-tool parse-options --alias-source 123 >output &&
grep "^string: 123" output &&
test-tool parse-options --alias-target 123 >output &&
grep "^string: 123" output &&
test_must_fail test-tool parse-options --alias &&
GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS=false \
test-tool parse-options --alias 123 >output &&
grep "^string: 123" output
string: 123
string: 123
fatal: disallowed abbreviated or ambiguous option 'alias'
string: 123
ok 30 - Alias options do not contribute to abbreviation
expecting success of 0040.31 'detect possible typos':
test_must_fail test-tool parse-options -boolean >output 2>output.err &&
test_must_be_empty output &&
test_cmp typo.err output.err
ok 31 - detect possible typos
expecting success of 0040.32 'detect possible typos':
test_must_fail test-tool parse-options -ambiguous >output 2>output.err &&
test_must_be_empty output &&
test_cmp typo.err output.err
ok 32 - detect possible typos
expecting success of 0040.33 'OPT_CALLBACK() and OPT_BIT() work':
test-tool parse-options --length=four -b -4 >output 2>output.err &&
test_must_be_empty output.err &&
test_cmp expect output
ok 33 - OPT_CALLBACK() and OPT_BIT() work
expecting success of 0040.34 'OPT_CALLBACK() and callback errors work':
test_must_fail test-tool parse-options --no-length >output 2>output.err &&
test_must_be_empty output &&
test_must_be_empty output.err
ok 34 - OPT_CALLBACK() and callback errors work
expecting success of 0040.35 'OPT_BIT() and OPT_SET_INT() work':
test-tool parse-options --set23 -bbbbb --no-or4 >output 2>output.err &&
test_must_be_empty output.err &&
test_cmp expect output
ok 35 - OPT_BIT() and OPT_SET_INT() work
expecting success of 0040.36 'OPT_NEGBIT() and OPT_SET_INT() work':
test-tool parse-options --set23 -bbbbb --neg-or4 >output 2>output.err &&
test_must_be_empty output.err &&
test_cmp expect output
ok 36 - OPT_NEGBIT() and OPT_SET_INT() work
expecting success of 0040.37 'OPT_BIT() works':
test-tool parse-options --expect="boolean: 6" -bb --or4
ok 37 - OPT_BIT() works
expecting success of 0040.38 'OPT_NEGBIT() works':
test-tool parse-options --expect="boolean: 6" -bb --no-neg-or4
ok 38 - OPT_NEGBIT() works
expecting success of 0040.39 'OPT_CMDMODE() works':
test-tool parse-options --expect="integer: 1" --mode1
ok 39 - OPT_CMDMODE() works
expecting success of 0040.40 'OPT_CMDMODE() detects incompatibility':
test_must_fail test-tool parse-options --mode1 --mode2 >output 2>output.err &&
test_must_be_empty output &&
test_i18ngrep "incompatible with --mode" output.err
error: option `mode2' is incompatible with --mode1
ok 40 - OPT_CMDMODE() detects incompatibility
expecting success of 0040.41 'OPT_CMDMODE() detects incompatibility with something else':
test_must_fail test-tool parse-options --set23 --mode2 >output 2>output.err &&
test_must_be_empty output &&
test_i18ngrep "incompatible with something else" output.err
error: option `mode2' : incompatible with something else
ok 41 - OPT_CMDMODE() detects incompatibility with something else
expecting success of 0040.42 'OPT_COUNTUP() with PARSE_OPT_NODASH works':
test-tool parse-options --expect="boolean: 6" + + + + + +
ok 42 - OPT_COUNTUP() with PARSE_OPT_NODASH works
expecting success of 0040.43 'OPT_NUMBER_CALLBACK() works':
test-tool parse-options --expect="integer: 12345" -12345
ok 43 - OPT_NUMBER_CALLBACK() works
expecting success of 0040.44 'negation of OPT_NONEG flags is not ambiguous':
GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS=false \
test-tool parse-options --no-ambig >output 2>output.err &&
test_must_be_empty output.err &&
test_cmp expect output
ok 44 - negation of OPT_NONEG flags is not ambiguous
expecting success of 0040.45 '--list keeps list of strings':
test-tool parse-options --list foo --list=bar --list=baz >output &&
test_cmp expect output
ok 45 - --list keeps list of strings
expecting success of 0040.46 '--no-list resets list':
test-tool parse-options --list=other --list=irrelevant --list=options \
--no-list --list=foo --list=bar --list=baz >output &&
test_cmp expect output
ok 46 - --no-list resets list
expecting success of 0040.47 'multiple quiet levels':
test-tool parse-options --expect="quiet: 3" -q -q -q
ok 47 - multiple quiet levels
expecting success of 0040.48 'multiple verbose levels':
test-tool parse-options --expect="verbose: 3" -v -v -v
ok 48 - multiple verbose levels
expecting success of 0040.49 '--no-quiet sets --quiet to 0':
test-tool parse-options --expect="quiet: 0" --no-quiet
ok 49 - --no-quiet sets --quiet to 0
expecting success of 0040.50 '--no-quiet resets multiple -q to 0':
test-tool parse-options --expect="quiet: 0" -q -q -q --no-quiet
ok 50 - --no-quiet resets multiple -q to 0
expecting success of 0040.51 '--no-verbose sets verbose to 0':
test-tool parse-options --expect="verbose: 0" --no-verbose
ok 51 - --no-verbose sets verbose to 0
expecting success of 0040.52 '--no-verbose resets multiple verbose to 0':
test-tool parse-options --expect="verbose: 0" -v -v -v --no-verbose
ok 52 - --no-verbose resets multiple verbose to 0
expecting success of 0040.53 'GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS works':
GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS=false \
test-tool parse-options --ye &&
test_must_fail env GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS=true \
test-tool parse-options --ye
boolean: 1
integer: 0
magnitude: 0
timestamp: 0
string: (not set)
abbrev: 7
verbose: -1
quiet: 0
dry run: no
file: (not set)
fatal: disallowed abbreviated or ambiguous option 'ye'
ok 53 - GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS works
expecting success of 0040.54 '--end-of-options treats remainder as args':
test-tool parse-options \
--expect="verbose: -1" \
--expect="arg 00: --verbose" \
--end-of-options --verbose
ok 54 - --end-of-options treats remainder as args
expecting success of 0040.55 'KEEP_DASHDASH works':
test-tool parse-options-flags --keep-dashdash cmd --opt=1 -- --opt=2 --unknown >actual &&
cat >expect <<-\EOF &&
opt: 1
arg 00: --
arg 01: --opt=2
arg 02: --unknown
EOF
test_cmp expect actual
ok 55 - KEEP_DASHDASH works
expecting success of 0040.56 'KEEP_ARGV0 works':
test-tool parse-options-flags --keep-argv0 cmd arg0 --opt=3 >actual &&
cat >expect <<-\EOF &&
opt: 3
arg 00: cmd
arg 01: arg0
EOF
test_cmp expect actual
ok 56 - KEEP_ARGV0 works
expecting success of 0040.57 'STOP_AT_NON_OPTION works':
test-tool parse-options-flags --stop-at-non-option cmd --opt=4 arg0 --opt=5 --unknown >actual &&
cat >expect <<-\EOF &&
opt: 4
arg 00: arg0
arg 01: --opt=5
arg 02: --unknown
EOF
test_cmp expect actual
ok 57 - STOP_AT_NON_OPTION works
expecting success of 0040.58 'KEEP_UNKNOWN_OPT works':
test-tool parse-options-flags --keep-unknown-opt cmd --unknown=1 --opt=6 -u2 >actual &&
cat >expect <<-\EOF &&
opt: 6
arg 00: --unknown=1
arg 01: -u2
EOF
test_cmp expect actual
ok 58 - KEEP_UNKNOWN_OPT works
expecting success of 0040.59 'NO_INTERNAL_HELP works for -h':
test_expect_code 129 test-tool parse-options-flags --no-internal-help cmd -h 2>err &&
grep "^error: unknown switch \`h$SQ" err &&
grep "^usage: " err
error: unknown switch `h'
usage: <...> cmd [options]
ok 59 - NO_INTERNAL_HELP works for -h
expecting success of 0040.60 'NO_INTERNAL_HELP works for --help':
test_expect_code 129 test-tool parse-options-flags --no-internal-help cmd --help 2>err &&
grep '^error: unknown option `'help\' err &&
grep '^usage: ' err
error: unknown option `help'
usage: <...> cmd [options]
ok 60 - NO_INTERNAL_HELP works for --help
expecting success of 0040.61 'NO_INTERNAL_HELP works for --help-all':
test_expect_code 129 test-tool parse-options-flags --no-internal-help cmd --help-all 2>err &&
grep '^error: unknown option `'help-all\' err &&
grep '^usage: ' err
error: unknown option `help-all'
usage: <...> cmd [options]
ok 61 - NO_INTERNAL_HELP works for --help-all
expecting success of 0040.62 'KEEP_UNKNOWN_OPT | NO_INTERNAL_HELP works':
test-tool parse-options-flags --keep-unknown-opt --no-internal-help cmd -h --help --help-all >actual &&
cat >expect <<-\EOF &&
opt: 0
arg 00: -h
arg 01: --help
arg 02: --help-all
EOF
test_cmp expect actual
ok 62 - KEEP_UNKNOWN_OPT | NO_INTERNAL_HELP works
expecting success of 0040.63 'subcommand - no subcommand shows error and usage':
test_expect_code 129 test-tool parse-subcommand cmd 2>err &&
grep "^error: need a subcommand" err &&
grep ^usage: err
error: need a subcommand
usage: <...> cmd subcmd-one
ok 63 - subcommand - no subcommand shows error and usage
expecting success of 0040.64 'subcommand - subcommand after -- shows error and usage':
test_expect_code 129 test-tool parse-subcommand cmd -- subcmd-one 2>err &&
grep "^error: need a subcommand" err &&
grep ^usage: err
error: need a subcommand
usage: <...> cmd subcmd-one
ok 64 - subcommand - subcommand after -- shows error and usage
expecting success of 0040.65 'subcommand - subcommand after --end-of-options shows error and usage':
test_expect_code 129 test-tool parse-subcommand cmd --end-of-options subcmd-one 2>err &&
grep "^error: need a subcommand" err &&
grep ^usage: err
error: need a subcommand
usage: <...> cmd subcmd-one
ok 65 - subcommand - subcommand after --end-of-options shows error and usage
expecting success of 0040.66 'subcommand - unknown subcommand shows error and usage':
test_expect_code 129 test-tool parse-subcommand cmd nope 2>err &&
grep "^error: unknown subcommand: \`nope$SQ" err &&
grep ^usage: err
error: unknown subcommand: `nope'
usage: <...> cmd subcmd-one
ok 66 - subcommand - unknown subcommand shows error and usage
expecting success of 0040.67 'subcommand - subcommands cannot be abbreviated':
test_expect_code 129 test-tool parse-subcommand cmd subcmd-o 2>err &&
grep "^error: unknown subcommand: \`subcmd-o$SQ$" err &&
grep ^usage: err
error: unknown subcommand: `subcmd-o'
usage: <...> cmd subcmd-one
ok 67 - subcommand - subcommands cannot be abbreviated
expecting success of 0040.68 'subcommand - no negated subcommands':
test_expect_code 129 test-tool parse-subcommand cmd no-subcmd-one 2>err &&
grep "^error: unknown subcommand: \`no-subcmd-one$SQ" err &&
grep ^usage: err
error: unknown subcommand: `no-subcmd-one'
usage: <...> cmd subcmd-one
ok 68 - subcommand - no negated subcommands
expecting success of 0040.69 'subcommand - simple':
test-tool parse-subcommand cmd subcmd-two >actual &&
cat >expect <<-\EOF &&
opt: 0
fn: subcmd_two
arg 00: subcmd-two
EOF
test_cmp expect actual
ok 69 - subcommand - simple
expecting success of 0040.70 'subcommand - stop parsing at the first subcommand':
test-tool parse-subcommand cmd --opt=1 subcmd-two subcmd-one --opt=2 >actual &&
cat >expect <<-\EOF &&
opt: 1
fn: subcmd_two
arg 00: subcmd-two
arg 01: subcmd-one
arg 02: --opt=2
EOF
test_cmp expect actual
ok 70 - subcommand - stop parsing at the first subcommand
expecting success of 0040.71 'subcommand - KEEP_ARGV0':
test-tool parse-subcommand --keep-argv0 cmd subcmd-two >actual &&
cat >expect <<-\EOF &&
opt: 0
fn: subcmd_two
arg 00: cmd
arg 01: subcmd-two
EOF
test_cmp expect actual
ok 71 - subcommand - KEEP_ARGV0
expecting success of 0040.72 'subcommand - SUBCOMMAND_OPTIONAL + subcommand not given':
test-tool parse-subcommand --subcommand-optional cmd >actual &&
cat >expect <<-\EOF &&
opt: 0
fn: subcmd_one
EOF
test_cmp expect actual
ok 72 - subcommand - SUBCOMMAND_OPTIONAL + subcommand not given
expecting success of 0040.73 'subcommand - SUBCOMMAND_OPTIONAL + given subcommand':
test-tool parse-subcommand --subcommand-optional cmd subcmd-two branch file >actual &&
cat >expect <<-\EOF &&
opt: 0
fn: subcmd_two
arg 00: subcmd-two
arg 01: branch
arg 02: file
EOF
test_cmp expect actual
ok 73 - subcommand - SUBCOMMAND_OPTIONAL + given subcommand
expecting success of 0040.74 'subcommand - SUBCOMMAND_OPTIONAL + subcommand not given + unknown dashless args':
test-tool parse-subcommand --subcommand-optional cmd branch file >actual &&
cat >expect <<-\EOF &&
opt: 0
fn: subcmd_one
arg 00: branch
arg 01: file
EOF
test_cmp expect actual
ok 74 - subcommand - SUBCOMMAND_OPTIONAL + subcommand not given + unknown dashless args
expecting success of 0040.75 'subcommand - SUBCOMMAND_OPTIONAL + subcommand not given + unknown option':
test_expect_code 129 test-tool parse-subcommand --subcommand-optional cmd --subcommand-opt 2>err &&
grep "^error: unknown option" err &&
grep ^usage: err
error: unknown option `subcommand-opt'
usage: <...> cmd subcmd-one
ok 75 - subcommand - SUBCOMMAND_OPTIONAL + subcommand not given + unknown option
expecting success of 0040.76 'subcommand - SUBCOMMAND_OPTIONAL | KEEP_UNKNOWN_OPT + subcommand not given + unknown option':
test-tool parse-subcommand --subcommand-optional --keep-unknown-opt cmd --subcommand-opt >actual &&
cat >expect <<-\EOF &&
opt: 0
fn: subcmd_one
arg 00: --subcommand-opt
EOF
test_cmp expect actual
ok 76 - subcommand - SUBCOMMAND_OPTIONAL | KEEP_UNKNOWN_OPT + subcommand not given + unknown option
expecting success of 0040.77 'subcommand - SUBCOMMAND_OPTIONAL | KEEP_UNKNOWN_OPT + subcommand ignored after unknown option':
test-tool parse-subcommand --subcommand-optional --keep-unknown-opt cmd --subcommand-opt subcmd-two >actual &&
cat >expect <<-\EOF &&
opt: 0
fn: subcmd_one
arg 00: --subcommand-opt
arg 01: subcmd-two
EOF
test_cmp expect actual
ok 77 - subcommand - SUBCOMMAND_OPTIONAL | KEEP_UNKNOWN_OPT + subcommand ignored after unknown option
expecting success of 0040.78 'subcommand - SUBCOMMAND_OPTIONAL | KEEP_UNKNOWN_OPT + command and subcommand options cannot be mixed':
test-tool parse-subcommand --subcommand-optional --keep-unknown-opt cmd --subcommand-opt branch --opt=1 >actual &&
cat >expect <<-\EOF &&
opt: 0
fn: subcmd_one
arg 00: --subcommand-opt
arg 01: branch
arg 02: --opt=1
EOF
test_cmp expect actual
ok 78 - subcommand - SUBCOMMAND_OPTIONAL | KEEP_UNKNOWN_OPT + command and subcommand options cannot be mixed
expecting success of 0040.79 'subcommand - SUBCOMMAND_OPTIONAL | KEEP_UNKNOWN_OPT | KEEP_ARGV0':
test-tool parse-subcommand --subcommand-optional --keep-unknown-opt --keep-argv0 cmd --subcommand-opt branch >actual &&
cat >expect <<-\EOF &&
opt: 0
fn: subcmd_one
arg 00: cmd
arg 01: --subcommand-opt
arg 02: branch
EOF
test_cmp expect actual
ok 79 - subcommand - SUBCOMMAND_OPTIONAL | KEEP_UNKNOWN_OPT | KEEP_ARGV0
expecting success of 0040.80 'subcommand - SUBCOMMAND_OPTIONAL | KEEP_UNKNOWN_OPT | KEEP_DASHDASH':
test-tool parse-subcommand --subcommand-optional --keep-unknown-opt --keep-dashdash cmd -- --subcommand-opt file >actual &&
cat >expect <<-\EOF &&
opt: 0
fn: subcmd_one
arg 00: --
arg 01: --subcommand-opt
arg 02: file
EOF
test_cmp expect actual
ok 80 - subcommand - SUBCOMMAND_OPTIONAL | KEEP_UNKNOWN_OPT | KEEP_DASHDASH
expecting success of 0040.81 'subcommand - completion helper':
test-tool parse-subcommand cmd --git-completion-helper >actual &&
echo "subcmd-one subcmd-two --opt= --no-opt" >expect &&
test_cmp expect actual
ok 81 - subcommand - completion helper
expecting success of 0040.82 'subcommands are incompatible with STOP_AT_NON_OPTION':
test_must_fail test-tool parse-subcommand --stop-at-non-option cmd subcmd-one 2>err &&
grep ^BUG err
BUG: parse-options.c:555: subcommands are incompatible with PARSE_OPT_STOP_AT_NON_OPTION
ok 82 - subcommands are incompatible with STOP_AT_NON_OPTION
expecting success of 0040.83 'subcommands are incompatible with KEEP_UNKNOWN_OPT unless in combination with SUBCOMMAND_OPTIONAL':
test_must_fail test-tool parse-subcommand --keep-unknown-opt cmd subcmd-two 2>err &&
grep ^BUG err
BUG: parse-options.c:558: subcommands are incompatible with PARSE_OPT_KEEP_UNKNOWN_OPT unless in combination with PARSE_OPT_SUBCOMMAND_OPTIONAL
ok 83 - subcommands are incompatible with KEEP_UNKNOWN_OPT unless in combination with SUBCOMMAND_OPTIONAL
expecting success of 0040.84 'subcommands are incompatible with KEEP_DASHDASH unless in combination with SUBCOMMAND_OPTIONAL':
test_must_fail test-tool parse-subcommand --keep-dashdash cmd subcmd-two 2>err &&
grep ^BUG err
BUG: parse-options.c:560: subcommands are incompatible with PARSE_OPT_KEEP_DASHDASH unless in combination with PARSE_OPT_SUBCOMMAND_OPTIONAL
ok 84 - subcommands are incompatible with KEEP_DASHDASH unless in combination with SUBCOMMAND_OPTIONAL
expecting success of 0040.85 'negative magnitude':
test_must_fail test-tool parse-options --magnitude -1 >out 2>err &&
grep "non-negative integer" err &&
test_must_be_empty out
error: option `magnitude' expects a non-negative integer value with an optional k/m/g suffix
ok 85 - negative magnitude
expecting success of 0040.86 'magnitude with units but no numbers':
test_must_fail test-tool parse-options --magnitude m >out 2>err &&
grep "non-negative integer" err &&
test_must_be_empty out
error: option `magnitude' expects a non-negative integer value with an optional k/m/g suffix
ok 86 - magnitude with units but no numbers
# passed all 86 test(s)
1..86
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0050-filesystem.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 main
[main (root-commit) 4f2cf87] initial
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 camelcase
Switched to a new branch 'topic'
[topic 0a6fec9] rename
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
rename camelcase => CamelCase (100%)
Switched to branch 'main'
ok 3 - setup case tests
expecting success of 0050.4 'rename (case change)':
git mv camelcase CamelCase &&
git commit -m "rename"
[main 0a6fec9] rename
Author: A U Thor <author@example.com>
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 main
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0050-filesystem/unicode/.git/
[main (root-commit) 34f0acb] initial
Author: A U Thor <author@example.com>
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 <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
rename "a\314\210" => "\303\244" (100%)
Switched to branch 'main'
ok 8 - setup unicode normalization tests
expecting success of 0050.9 'rename (silent unicode normalization)':
git mv "$aumlcdiar" "$auml" &&
git commit -m rename
[main 591d19c] rename
Author: A U Thor <author@example.com>
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0051-windows-named-pipe.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0051-windows-named-pipe/.git/
1..0 # SKIP skipping Windows-specific tests
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0055-beyond-symlinks.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0056-git-C.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0056-git-C/.git/
expecting success of 0056.1 '"git -C <path>" runs git from the directory <path>':
test_create_repo dir1 &&
echo 1 >dir1/a.txt &&
msg="initial in dir1" &&
(cd dir1 && git add a.txt && git commit -m "$msg") &&
echo "$msg" >expected &&
git -C dir1 log --format=%s >actual &&
test_cmp expected actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0056-git-C/dir1/.git/
[master (root-commit) 4efbfb5] initial in dir1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a.txt
ok 1 - "git -C <path>" runs git from the directory <path>
expecting success of 0056.2 '"git -C <path>" with an empty <path> is a no-op':
(
mkdir -p dir1/subdir &&
cd dir1/subdir &&
git -C "" rev-parse --show-prefix >actual &&
echo subdir/ >expect &&
test_cmp expect actual
)
ok 2 - "git -C <path>" with an empty <path> is a no-op
expecting success of 0056.3 'Multiple -C options: "-C dir1 -C dir2" is equivalent to "-C dir1/dir2"':
test_create_repo dir1/dir2 &&
echo 1 >dir1/dir2/b.txt &&
git -C dir1/dir2 add b.txt &&
msg="initial in dir1/dir2" &&
echo "$msg" >expected &&
git -C dir1/dir2 commit -m "$msg" &&
git -C dir1 -C dir2 log --format=%s >actual &&
test_cmp expected actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0056-git-C/dir1/dir2/.git/
[master (root-commit) ea3acc3] initial in dir1/dir2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b.txt
ok 3 - Multiple -C options: "-C dir1 -C dir2" is equivalent to "-C dir1/dir2"
expecting success of 0056.4 'Effect on --git-dir option: "-C c --git-dir=a.git" is equivalent to "--git-dir c/a.git"':
mkdir c &&
mkdir c/a &&
mkdir c/a.git &&
(cd c/a.git && git init --bare) &&
echo 1 >c/a/a.txt &&
git --git-dir c/a.git --work-tree=c/a add a.txt &&
git --git-dir c/a.git --work-tree=c/a commit -m "initial" &&
git --git-dir=c/a.git log -1 --format=%s >expected &&
git -C c --git-dir=a.git log -1 --format=%s >actual &&
test_cmp expected actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0056-git-C/c/a.git/
[master (root-commit) cac529a] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a.txt
ok 4 - Effect on --git-dir option: "-C c --git-dir=a.git" is equivalent to "--git-dir c/a.git"
expecting success of 0056.5 'Order should not matter: "--git-dir=a.git -C c" is equivalent to "-C c --git-dir=a.git"':
git -C c --git-dir=a.git log -1 --format=%s >expected &&
git --git-dir=a.git -C c log -1 --format=%s >actual &&
test_cmp expected actual
ok 5 - Order should not matter: "--git-dir=a.git -C c" is equivalent to "-C c --git-dir=a.git"
expecting success of 0056.6 'Effect on --work-tree option: "-C c/a.git --work-tree=../a" is equivalent to "--work-tree=c/a --git-dir=c/a.git"':
rm c/a/a.txt &&
git --git-dir=c/a.git --work-tree=c/a status >expected &&
git -C c/a.git --work-tree=../a status >actual &&
test_cmp expected actual
ok 6 - Effect on --work-tree option: "-C c/a.git --work-tree=../a" is equivalent to "--work-tree=c/a --git-dir=c/a.git"
expecting success of 0056.7 'Order should not matter: "--work-tree=../a -C c/a.git" is equivalent to "-C c/a.git --work-tree=../a"':
git -C c/a.git --work-tree=../a status >expected &&
git --work-tree=../a -C c/a.git status >actual &&
test_cmp expected actual
ok 7 - Order should not matter: "--work-tree=../a -C c/a.git" is equivalent to "-C c/a.git --work-tree=../a"
expecting success of 0056.8 'Effect on --git-dir and --work-tree options - "-C c --git-dir=a.git --work-tree=a" is equivalent to "--git-dir=c/a.git --work-tree=c/a"':
git --git-dir=c/a.git --work-tree=c/a status >expected &&
git -C c --git-dir=a.git --work-tree=a status >actual &&
test_cmp expected actual
ok 8 - Effect on --git-dir and --work-tree options - "-C c --git-dir=a.git --work-tree=a" is equivalent to "--git-dir=c/a.git --work-tree=c/a"
expecting success of 0056.9 'Order should not matter: "-C c --git-dir=a.git --work-tree=a" is equivalent to "--git-dir=a.git -C c --work-tree=a"':
git -C c --git-dir=a.git --work-tree=a status >expected &&
git --git-dir=a.git -C c --work-tree=a status >actual &&
test_cmp expected actual
ok 9 - Order should not matter: "-C c --git-dir=a.git --work-tree=a" is equivalent to "--git-dir=a.git -C c --work-tree=a"
expecting success of 0056.10 'Order should not matter: "-C c --git-dir=a.git --work-tree=a" is equivalent to "--git-dir=a.git --work-tree=a -C c"':
git -C c --git-dir=a.git --work-tree=a status >expected &&
git --git-dir=a.git --work-tree=a -C c status >actual &&
test_cmp expected actual
ok 10 - Order should not matter: "-C c --git-dir=a.git --work-tree=a" is equivalent to "--git-dir=a.git --work-tree=a -C c"
expecting success of 0056.11 'Relative followed by fullpath: "-C ./here -C /there" is equivalent to "-C /there"':
echo "initial in dir1/dir2" >expected &&
git -C dir1 -C "$(pwd)/dir1/dir2" log --format=%s >actual &&
test_cmp expected actual
ok 11 - Relative followed by fullpath: "-C ./here -C /there" is equivalent to "-C /there"
# passed all 11 test(s)
1..11
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0060-path-utils.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <drive-letter>:\\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: '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utilsa' is outside repository at '/<<PKGBUILDDIR>>/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")"
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <empty> => /foo/a/b': test "$(test-tool path-utils relative_path '/foo/a/b' '<empty>')" = '/foo/a/b'
ok 102 - relative path: /foo/a/b <empty> => /foo/a/b
expecting success of 0060.103 'relative path: /foo/a/b <null> => /foo/a/b': test "$(test-tool path-utils relative_path '/foo/a/b' '<null>')" = '/foo/a/b'
ok 103 - relative path: /foo/a/b <null> => /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 <empty> => foo/a/b': test "$(test-tool path-utils relative_path 'foo/a/b' '<empty>')" = 'foo/a/b'
ok 116 - relative path: foo/a/b <empty> => foo/a/b
expecting success of 0060.117 'relative path: foo/a/b <null> => foo/a/b': test "$(test-tool path-utils relative_path 'foo/a/b' '<null>')" = 'foo/a/b'
ok 117 - relative path: foo/a/b <null> => foo/a/b
expecting success of 0060.118 'relative path: <empty> /foo/a/b => ./': test "$(test-tool path-utils relative_path '<empty>' '/foo/a/b')" = './'
ok 118 - relative path: <empty> /foo/a/b => ./
expecting success of 0060.119 'relative path: <empty> <empty> => ./': test "$(test-tool path-utils relative_path '<empty>' '<empty>')" = './'
ok 119 - relative path: <empty> <empty> => ./
expecting success of 0060.120 'relative path: <empty> <null> => ./': test "$(test-tool path-utils relative_path '<empty>' '<null>')" = './'
ok 120 - relative path: <empty> <null> => ./
expecting success of 0060.121 'relative path: <null> <empty> => ./': test "$(test-tool path-utils relative_path '<null>' '<empty>')" = './'
ok 121 - relative path: <null> <empty> => ./
expecting success of 0060.122 'relative path: <null> <null> => ./': test "$(test-tool path-utils relative_path '<null>' '<null>')" = './'
ok 122 - relative path: <null> <null> => ./
expecting success of 0060.123 'relative path: <null> /foo/a/b => ./': test "$(test-tool path-utils relative_path '<null>' '/foo/a/b')" = './'
ok 123 - relative path: <null> /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
ok 127 - git-path GIT_INDEX_FILE=foo index => foo
expecting success of 0060.128 'git-path GIT_INDEX_FILE=foo index/foo => .git/index/foo':
GIT_INDEX_FILE=foo git rev-parse --git-path index/foo >actual &&
echo .git/index/foo >expect &&
test_cmp expect actual
ok 128 - git-path GIT_INDEX_FILE=foo index/foo => .git/index/foo
expecting success of 0060.129 'git-path GIT_INDEX_FILE=foo index2 => .git/index2':
GIT_INDEX_FILE=foo git rev-parse --git-path index2 >actual &&
echo .git/index2 >expect &&
test_cmp expect actual
ok 129 - git-path GIT_INDEX_FILE=foo index2 => .git/index2
expecting success of 0060.130 'setup fake objects directory foo': mkdir foo
ok 130 - setup fake objects directory foo
expecting success of 0060.131 'git-path GIT_OBJECT_DIRECTORY=foo objects => foo':
GIT_OBJECT_DIRECTORY=foo git rev-parse --git-path objects >actual &&
echo foo >expect &&
test_cmp expect actual
ok 131 - git-path GIT_OBJECT_DIRECTORY=foo objects => foo
expecting success of 0060.132 'git-path GIT_OBJECT_DIRECTORY=foo objects/foo => foo/foo':
GIT_OBJECT_DIRECTORY=foo git rev-parse --git-path objects/foo >actual &&
echo foo/foo >expect &&
test_cmp expect actual
ok 132 - git-path GIT_OBJECT_DIRECTORY=foo objects/foo => foo/foo
expecting success of 0060.133 'git-path GIT_OBJECT_DIRECTORY=foo objects2 => .git/objects2':
GIT_OBJECT_DIRECTORY=foo git rev-parse --git-path objects2 >actual &&
echo .git/objects2 >expect &&
test_cmp expect actual
ok 133 - git-path GIT_OBJECT_DIRECTORY=foo objects2 => .git/objects2
expecting success of 0060.134 'setup common repository': git --git-dir=bar init
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/bar/
ok 134 - setup common repository
expecting success of 0060.135 'git-path GIT_COMMON_DIR=bar index => .git/index':
GIT_COMMON_DIR=bar git rev-parse --git-path index >actual &&
echo .git/index >expect &&
test_cmp expect actual
ok 135 - git-path GIT_COMMON_DIR=bar index => .git/index
expecting success of 0060.136 'git-path GIT_COMMON_DIR=bar index.lock => .git/index.lock':
GIT_COMMON_DIR=bar git rev-parse --git-path index.lock >actual &&
echo .git/index.lock >expect &&
test_cmp expect actual
ok 136 - git-path GIT_COMMON_DIR=bar index.lock => .git/index.lock
expecting success of 0060.137 'git-path GIT_COMMON_DIR=bar HEAD => .git/HEAD':
GIT_COMMON_DIR=bar git rev-parse --git-path HEAD >actual &&
echo .git/HEAD >expect &&
test_cmp expect actual
ok 137 - git-path GIT_COMMON_DIR=bar HEAD => .git/HEAD
expecting success of 0060.138 'git-path GIT_COMMON_DIR=bar logs/HEAD => .git/logs/HEAD':
GIT_COMMON_DIR=bar git rev-parse --git-path logs/HEAD >actual &&
echo .git/logs/HEAD >expect &&
test_cmp expect actual
ok 138 - git-path GIT_COMMON_DIR=bar logs/HEAD => .git/logs/HEAD
expecting success of 0060.139 'git-path GIT_COMMON_DIR=bar logs/HEAD.lock => .git/logs/HEAD.lock':
GIT_COMMON_DIR=bar git rev-parse --git-path logs/HEAD.lock >actual &&
echo .git/logs/HEAD.lock >expect &&
test_cmp expect actual
ok 139 - git-path GIT_COMMON_DIR=bar logs/HEAD.lock => .git/logs/HEAD.lock
expecting success of 0060.140 'git-path GIT_COMMON_DIR=bar logs/refs/bisect/foo => .git/logs/refs/bisect/foo':
GIT_COMMON_DIR=bar git rev-parse --git-path logs/refs/bisect/foo >actual &&
echo .git/logs/refs/bisect/foo >expect &&
test_cmp expect actual
ok 140 - git-path GIT_COMMON_DIR=bar logs/refs/bisect/foo => .git/logs/refs/bisect/foo
expecting success of 0060.141 'git-path GIT_COMMON_DIR=bar logs/refs => bar/logs/refs':
GIT_COMMON_DIR=bar git rev-parse --git-path logs/refs >actual &&
echo bar/logs/refs >expect &&
test_cmp expect actual
ok 141 - git-path GIT_COMMON_DIR=bar logs/refs => bar/logs/refs
expecting success of 0060.142 'git-path GIT_COMMON_DIR=bar logs/refs/ => bar/logs/refs/':
GIT_COMMON_DIR=bar git rev-parse --git-path logs/refs/ >actual &&
echo bar/logs/refs/ >expect &&
test_cmp expect actual
ok 142 - git-path GIT_COMMON_DIR=bar logs/refs/ => bar/logs/refs/
expecting success of 0060.143 'git-path GIT_COMMON_DIR=bar logs/refs/bisec/foo => bar/logs/refs/bisec/foo':
GIT_COMMON_DIR=bar git rev-parse --git-path logs/refs/bisec/foo >actual &&
echo bar/logs/refs/bisec/foo >expect &&
test_cmp expect actual
ok 143 - git-path GIT_COMMON_DIR=bar logs/refs/bisec/foo => bar/logs/refs/bisec/foo
expecting success of 0060.144 'git-path GIT_COMMON_DIR=bar logs/refs/bisec => bar/logs/refs/bisec':
GIT_COMMON_DIR=bar git rev-parse --git-path logs/refs/bisec >actual &&
echo bar/logs/refs/bisec >expect &&
test_cmp expect actual
ok 144 - git-path GIT_COMMON_DIR=bar logs/refs/bisec => bar/logs/refs/bisec
expecting success of 0060.145 'git-path GIT_COMMON_DIR=bar logs/refs/bisectfoo => bar/logs/refs/bisectfoo':
GIT_COMMON_DIR=bar git rev-parse --git-path logs/refs/bisectfoo >actual &&
echo bar/logs/refs/bisectfoo >expect &&
test_cmp expect actual
ok 145 - git-path GIT_COMMON_DIR=bar logs/refs/bisectfoo => bar/logs/refs/bisectfoo
expecting success of 0060.146 'git-path GIT_COMMON_DIR=bar objects => bar/objects':
GIT_COMMON_DIR=bar git rev-parse --git-path objects >actual &&
echo bar/objects >expect &&
test_cmp expect actual
ok 146 - git-path GIT_COMMON_DIR=bar objects => bar/objects
expecting success of 0060.147 'git-path GIT_COMMON_DIR=bar objects/bar => bar/objects/bar':
GIT_COMMON_DIR=bar git rev-parse --git-path objects/bar >actual &&
echo bar/objects/bar >expect &&
test_cmp expect actual
ok 147 - git-path GIT_COMMON_DIR=bar objects/bar => bar/objects/bar
expecting success of 0060.148 'git-path GIT_COMMON_DIR=bar info/exclude => bar/info/exclude':
GIT_COMMON_DIR=bar git rev-parse --git-path info/exclude >actual &&
echo bar/info/exclude >expect &&
test_cmp expect actual
ok 148 - git-path GIT_COMMON_DIR=bar info/exclude => bar/info/exclude
expecting success of 0060.149 'git-path GIT_COMMON_DIR=bar info/grafts => bar/info/grafts':
GIT_COMMON_DIR=bar git rev-parse --git-path info/grafts >actual &&
echo bar/info/grafts >expect &&
test_cmp expect actual
ok 149 - git-path GIT_COMMON_DIR=bar info/grafts => bar/info/grafts
expecting success of 0060.150 'git-path GIT_COMMON_DIR=bar info/sparse-checkout => .git/info/sparse-checkout':
GIT_COMMON_DIR=bar git rev-parse --git-path info/sparse-checkout >actual &&
echo .git/info/sparse-checkout >expect &&
test_cmp expect actual
ok 150 - git-path GIT_COMMON_DIR=bar info/sparse-checkout => .git/info/sparse-checkout
expecting success of 0060.151 'git-path GIT_COMMON_DIR=bar info//sparse-checkout => .git/info//sparse-checkout':
GIT_COMMON_DIR=bar git rev-parse --git-path info//sparse-checkout >actual &&
echo .git/info//sparse-checkout >expect &&
test_cmp expect actual
ok 151 - git-path GIT_COMMON_DIR=bar info//sparse-checkout => .git/info//sparse-checkout
expecting success of 0060.152 'git-path GIT_COMMON_DIR=bar remotes/bar => bar/remotes/bar':
GIT_COMMON_DIR=bar git rev-parse --git-path remotes/bar >actual &&
echo bar/remotes/bar >expect &&
test_cmp expect actual
ok 152 - git-path GIT_COMMON_DIR=bar remotes/bar => bar/remotes/bar
expecting success of 0060.153 'git-path GIT_COMMON_DIR=bar branches/bar => bar/branches/bar':
GIT_COMMON_DIR=bar git rev-parse --git-path branches/bar >actual &&
echo bar/branches/bar >expect &&
test_cmp expect actual
ok 153 - git-path GIT_COMMON_DIR=bar branches/bar => bar/branches/bar
expecting success of 0060.154 'git-path GIT_COMMON_DIR=bar logs/refs/heads/main => bar/logs/refs/heads/main':
GIT_COMMON_DIR=bar git rev-parse --git-path logs/refs/heads/main >actual &&
echo bar/logs/refs/heads/main >expect &&
test_cmp expect actual
ok 154 - git-path GIT_COMMON_DIR=bar logs/refs/heads/main => bar/logs/refs/heads/main
expecting success of 0060.155 'git-path GIT_COMMON_DIR=bar refs/heads/main => bar/refs/heads/main':
GIT_COMMON_DIR=bar git rev-parse --git-path refs/heads/main >actual &&
echo bar/refs/heads/main >expect &&
test_cmp expect actual
ok 155 - git-path GIT_COMMON_DIR=bar refs/heads/main => bar/refs/heads/main
expecting success of 0060.156 'git-path GIT_COMMON_DIR=bar refs/bisect/foo => .git/refs/bisect/foo':
GIT_COMMON_DIR=bar git rev-parse --git-path refs/bisect/foo >actual &&
echo .git/refs/bisect/foo >expect &&
test_cmp expect actual
ok 156 - git-path GIT_COMMON_DIR=bar refs/bisect/foo => .git/refs/bisect/foo
expecting success of 0060.157 'git-path GIT_COMMON_DIR=bar hooks/me => bar/hooks/me':
GIT_COMMON_DIR=bar git rev-parse --git-path hooks/me >actual &&
echo bar/hooks/me >expect &&
test_cmp expect actual
ok 157 - git-path GIT_COMMON_DIR=bar hooks/me => bar/hooks/me
expecting success of 0060.158 'git-path GIT_COMMON_DIR=bar config => bar/config':
GIT_COMMON_DIR=bar git rev-parse --git-path config >actual &&
echo bar/config >expect &&
test_cmp expect actual
ok 158 - git-path GIT_COMMON_DIR=bar config => bar/config
expecting success of 0060.159 'git-path GIT_COMMON_DIR=bar packed-refs => bar/packed-refs':
GIT_COMMON_DIR=bar git rev-parse --git-path packed-refs >actual &&
echo bar/packed-refs >expect &&
test_cmp expect actual
ok 159 - git-path GIT_COMMON_DIR=bar packed-refs => bar/packed-refs
expecting success of 0060.160 'git-path GIT_COMMON_DIR=bar shallow => bar/shallow':
GIT_COMMON_DIR=bar git rev-parse --git-path shallow >actual &&
echo bar/shallow >expect &&
test_cmp expect actual
ok 160 - git-path GIT_COMMON_DIR=bar shallow => bar/shallow
expecting success of 0060.161 'git-path GIT_COMMON_DIR=bar common => bar/common':
GIT_COMMON_DIR=bar git rev-parse --git-path common >actual &&
echo bar/common >expect &&
test_cmp expect actual
ok 161 - git-path GIT_COMMON_DIR=bar common => bar/common
expecting success of 0060.162 'git-path GIT_COMMON_DIR=bar common/file => bar/common/file':
GIT_COMMON_DIR=bar git rev-parse --git-path common/file >actual &&
echo bar/common/file >expect &&
test_cmp expect actual
ok 162 - git-path GIT_COMMON_DIR=bar common/file => bar/common/file
expecting success of 0060.163 'test_submodule_relative_url: ../ ../foo ../submodule => ../../submodule':
actual=$(test-tool submodule resolve-relative-url '../' '../foo' '../submodule') &&
test "$actual" = '../../submodule'
ok 163 - test_submodule_relative_url: ../ ../foo ../submodule => ../../submodule
expecting success of 0060.164 'test_submodule_relative_url: ../ ../foo/bar ../submodule => ../../foo/submodule':
actual=$(test-tool submodule resolve-relative-url '../' '../foo/bar' '../submodule') &&
test "$actual" = '../../foo/submodule'
ok 164 - test_submodule_relative_url: ../ ../foo/bar ../submodule => ../../foo/submodule
expecting success of 0060.165 'test_submodule_relative_url: ../ ../foo/submodule ../submodule => ../../foo/submodule':
actual=$(test-tool submodule resolve-relative-url '../' '../foo/submodule' '../submodule') &&
test "$actual" = '../../foo/submodule'
ok 165 - test_submodule_relative_url: ../ ../foo/submodule ../submodule => ../../foo/submodule
expecting success of 0060.166 'test_submodule_relative_url: ../ ./foo ../submodule => ../submodule':
actual=$(test-tool submodule resolve-relative-url '../' './foo' '../submodule') &&
test "$actual" = '../submodule'
ok 166 - test_submodule_relative_url: ../ ./foo ../submodule => ../submodule
expecting success of 0060.167 'test_submodule_relative_url: ../ ./foo/bar ../submodule => ../foo/submodule':
actual=$(test-tool submodule resolve-relative-url '../' './foo/bar' '../submodule') &&
test "$actual" = '../foo/submodule'
ok 167 - test_submodule_relative_url: ../ ./foo/bar ../submodule => ../foo/submodule
expecting success of 0060.168 'test_submodule_relative_url: ../../../ ../foo/bar ../sub/a/b/c => ../../../../foo/sub/a/b/c':
actual=$(test-tool submodule resolve-relative-url '../../../' '../foo/bar' '../sub/a/b/c') &&
test "$actual" = '../../../../foo/sub/a/b/c'
ok 168 - test_submodule_relative_url: ../../../ ../foo/bar ../sub/a/b/c => ../../../../foo/sub/a/b/c
expecting success of 0060.169 'test_submodule_relative_url: ../ /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/addtest ../repo => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/repo':
actual=$(test-tool submodule resolve-relative-url '../' '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/addtest' '../repo') &&
test "$actual" = '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/repo'
ok 169 - test_submodule_relative_url: ../ /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/addtest ../repo => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/repo
expecting success of 0060.170 'test_submodule_relative_url: ../ foo/bar ../submodule => ../foo/submodule':
actual=$(test-tool submodule resolve-relative-url '../' 'foo/bar' '../submodule') &&
test "$actual" = '../foo/submodule'
ok 170 - test_submodule_relative_url: ../ foo/bar ../submodule => ../foo/submodule
expecting success of 0060.171 'test_submodule_relative_url: ../ foo ../submodule => ../submodule':
actual=$(test-tool submodule resolve-relative-url '../' 'foo' '../submodule') &&
test "$actual" = '../submodule'
ok 171 - test_submodule_relative_url: ../ foo ../submodule => ../submodule
expecting success of 0060.172 'test_submodule_relative_url: (null) ../foo/bar ../sub/a/b/c => ../foo/sub/a/b/c':
actual=$(test-tool submodule resolve-relative-url '(null)' '../foo/bar' '../sub/a/b/c') &&
test "$actual" = '../foo/sub/a/b/c'
ok 172 - test_submodule_relative_url: (null) ../foo/bar ../sub/a/b/c => ../foo/sub/a/b/c
expecting success of 0060.173 'test_submodule_relative_url: (null) ../foo/bar ../sub/a/b/c/ => ../foo/sub/a/b/c':
actual=$(test-tool submodule resolve-relative-url '(null)' '../foo/bar' '../sub/a/b/c/') &&
test "$actual" = '../foo/sub/a/b/c'
ok 173 - test_submodule_relative_url: (null) ../foo/bar ../sub/a/b/c/ => ../foo/sub/a/b/c
expecting success of 0060.174 'test_submodule_relative_url: (null) ../foo/bar/ ../sub/a/b/c => ../foo/sub/a/b/c':
actual=$(test-tool submodule resolve-relative-url '(null)' '../foo/bar/' '../sub/a/b/c') &&
test "$actual" = '../foo/sub/a/b/c'
ok 174 - test_submodule_relative_url: (null) ../foo/bar/ ../sub/a/b/c => ../foo/sub/a/b/c
expecting success of 0060.175 'test_submodule_relative_url: (null) ../foo/bar ../submodule => ../foo/submodule':
actual=$(test-tool submodule resolve-relative-url '(null)' '../foo/bar' '../submodule') &&
test "$actual" = '../foo/submodule'
ok 175 - test_submodule_relative_url: (null) ../foo/bar ../submodule => ../foo/submodule
expecting success of 0060.176 'test_submodule_relative_url: (null) ../foo/submodule ../submodule => ../foo/submodule':
actual=$(test-tool submodule resolve-relative-url '(null)' '../foo/submodule' '../submodule') &&
test "$actual" = '../foo/submodule'
ok 176 - test_submodule_relative_url: (null) ../foo/submodule ../submodule => ../foo/submodule
expecting success of 0060.177 'test_submodule_relative_url: (null) ../foo ../submodule => ../submodule':
actual=$(test-tool submodule resolve-relative-url '(null)' '../foo' '../submodule') &&
test "$actual" = '../submodule'
ok 177 - test_submodule_relative_url: (null) ../foo ../submodule => ../submodule
expecting success of 0060.178 'test_submodule_relative_url: (null) ./foo/bar ../submodule => foo/submodule':
actual=$(test-tool submodule resolve-relative-url '(null)' './foo/bar' '../submodule') &&
test "$actual" = 'foo/submodule'
ok 178 - test_submodule_relative_url: (null) ./foo/bar ../submodule => foo/submodule
expecting success of 0060.179 'test_submodule_relative_url: (null) ./foo ../submodule => submodule':
actual=$(test-tool submodule resolve-relative-url '(null)' './foo' '../submodule') &&
test "$actual" = 'submodule'
ok 179 - test_submodule_relative_url: (null) ./foo ../submodule => submodule
expecting success of 0060.180 'test_submodule_relative_url: (null) //somewhere else/repo ../subrepo => //somewhere else/subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' '//somewhere else/repo' '../subrepo') &&
test "$actual" = '//somewhere else/subrepo'
ok 180 - test_submodule_relative_url: (null) //somewhere else/repo ../subrepo => //somewhere else/subrepo
expecting success of 0060.181 'test_submodule_relative_url: (null) //somewhere else/repo ../../subrepo => //subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' '//somewhere else/repo' '../../subrepo') &&
test "$actual" = '//subrepo'
ok 181 - test_submodule_relative_url: (null) //somewhere else/repo ../../subrepo => //subrepo
expecting success of 0060.182 'test_submodule_relative_url: (null) //somewhere else/repo ../../../subrepo => /subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' '//somewhere else/repo' '../../../subrepo') &&
test "$actual" = '/subrepo'
ok 182 - test_submodule_relative_url: (null) //somewhere else/repo ../../../subrepo => /subrepo
expecting success of 0060.183 'test_submodule_relative_url: (null) //somewhere else/repo ../../../../subrepo => subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' '//somewhere else/repo' '../../../../subrepo') &&
test "$actual" = 'subrepo'
ok 183 - test_submodule_relative_url: (null) //somewhere else/repo ../../../../subrepo => subrepo
expecting success of 0060.184 'test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/subsuper_update_r ../subsubsuper_update_r => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/subsubsuper_update_r':
actual=$(test-tool submodule resolve-relative-url '(null)' '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/subsuper_update_r' '../subsubsuper_update_r') &&
test "$actual" = '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/subsubsuper_update_r'
ok 184 - test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/subsuper_update_r ../subsubsuper_update_r => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/subsubsuper_update_r
expecting success of 0060.185 'test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/super_update_r2 ../subsuper_update_r => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/subsuper_update_r':
actual=$(test-tool submodule resolve-relative-url '(null)' '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/super_update_r2' '../subsuper_update_r') &&
test "$actual" = '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/subsuper_update_r'
ok 185 - test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/super_update_r2 ../subsuper_update_r => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/subsuper_update_r
expecting success of 0060.186 'test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/. ../. => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/.':
actual=$(test-tool submodule resolve-relative-url '(null)' '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/.' '../.') &&
test "$actual" = '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/.'
ok 186 - test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/. ../. => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/.
expecting success of 0060.187 'test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils ./. => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/.':
actual=$(test-tool submodule resolve-relative-url '(null)' '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils' './.') &&
test "$actual" = '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/.'
ok 187 - test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils ./. => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/.
expecting success of 0060.188 'test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/addtest ../repo => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/repo':
actual=$(test-tool submodule resolve-relative-url '(null)' '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/addtest' '../repo') &&
test "$actual" = '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/repo'
ok 188 - test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/addtest ../repo => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/repo
expecting success of 0060.189 'test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils ./å äö => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/å äö':
actual=$(test-tool submodule resolve-relative-url '(null)' '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils' './å äö') &&
test "$actual" = '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/å äö'
ok 189 - test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils ./å äö => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/å äö
expecting success of 0060.190 'test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/. ../submodule => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule':
actual=$(test-tool submodule resolve-relative-url '(null)' '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/.' '../submodule') &&
test "$actual" = '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule'
ok 190 - test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/. ../submodule => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule
expecting success of 0060.191 'test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule ../submodule => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule':
actual=$(test-tool submodule resolve-relative-url '(null)' '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule' '../submodule') &&
test "$actual" = '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule'
ok 191 - test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule ../submodule => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule
expecting success of 0060.192 'test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/home2/../remote ../bundle1 => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/home2/../bundle1':
actual=$(test-tool submodule resolve-relative-url '(null)' '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/home2/../remote' '../bundle1') &&
test "$actual" = '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/home2/../bundle1'
ok 192 - test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/home2/../remote ../bundle1 => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/home2/../bundle1
expecting success of 0060.193 'test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule_update_repo ./. => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule_update_repo/.':
actual=$(test-tool submodule resolve-relative-url '(null)' '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule_update_repo' './.') &&
test "$actual" = '/<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule_update_repo/.'
ok 193 - test_submodule_relative_url: (null) /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule_update_repo ./. => /<<PKGBUILDDIR>>/t/trash directory.t0060-path-utils/submodule_update_repo/.
expecting success of 0060.194 'test_submodule_relative_url: (null) file:///tmp/repo ../subrepo => file:///tmp/subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' 'file:///tmp/repo' '../subrepo') &&
test "$actual" = 'file:///tmp/subrepo'
ok 194 - test_submodule_relative_url: (null) file:///tmp/repo ../subrepo => file:///tmp/subrepo
expecting success of 0060.195 'test_submodule_relative_url: (null) foo/bar ../submodule => foo/submodule':
actual=$(test-tool submodule resolve-relative-url '(null)' 'foo/bar' '../submodule') &&
test "$actual" = 'foo/submodule'
ok 195 - test_submodule_relative_url: (null) foo/bar ../submodule => foo/submodule
expecting success of 0060.196 'test_submodule_relative_url: (null) foo ../submodule => submodule':
actual=$(test-tool submodule resolve-relative-url '(null)' 'foo' '../submodule') &&
test "$actual" = 'submodule'
ok 196 - test_submodule_relative_url: (null) foo ../submodule => submodule
expecting success of 0060.197 'test_submodule_relative_url: (null) helper:://hostname/repo ../subrepo => helper:://hostname/subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' 'helper:://hostname/repo' '../subrepo') &&
test "$actual" = 'helper:://hostname/subrepo'
ok 197 - test_submodule_relative_url: (null) helper:://hostname/repo ../subrepo => helper:://hostname/subrepo
expecting success of 0060.198 'test_submodule_relative_url: (null) helper:://hostname/repo ../../subrepo => helper:://subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' 'helper:://hostname/repo' '../../subrepo') &&
test "$actual" = 'helper:://subrepo'
ok 198 - test_submodule_relative_url: (null) helper:://hostname/repo ../../subrepo => helper:://subrepo
expecting success of 0060.199 'test_submodule_relative_url: (null) helper:://hostname/repo ../../../subrepo => helper::/subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' 'helper:://hostname/repo' '../../../subrepo') &&
test "$actual" = 'helper::/subrepo'
ok 199 - test_submodule_relative_url: (null) helper:://hostname/repo ../../../subrepo => helper::/subrepo
expecting success of 0060.200 'test_submodule_relative_url: (null) helper:://hostname/repo ../../../../subrepo => helper::subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' 'helper:://hostname/repo' '../../../../subrepo') &&
test "$actual" = 'helper::subrepo'
ok 200 - test_submodule_relative_url: (null) helper:://hostname/repo ../../../../subrepo => helper::subrepo
expecting success of 0060.201 'test_submodule_relative_url: (null) helper:://hostname/repo ../../../../../subrepo => helper:subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' 'helper:://hostname/repo' '../../../../../subrepo') &&
test "$actual" = 'helper:subrepo'
ok 201 - test_submodule_relative_url: (null) helper:://hostname/repo ../../../../../subrepo => helper:subrepo
expecting success of 0060.202 'test_submodule_relative_url: (null) helper:://hostname/repo ../../../../../../subrepo => .:subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' 'helper:://hostname/repo' '../../../../../../subrepo') &&
test "$actual" = '.:subrepo'
ok 202 - test_submodule_relative_url: (null) helper:://hostname/repo ../../../../../../subrepo => .:subrepo
expecting success of 0060.203 'test_submodule_relative_url: (null) ssh://hostname/repo ../subrepo => ssh://hostname/subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' 'ssh://hostname/repo' '../subrepo') &&
test "$actual" = 'ssh://hostname/subrepo'
ok 203 - test_submodule_relative_url: (null) ssh://hostname/repo ../subrepo => ssh://hostname/subrepo
expecting success of 0060.204 'test_submodule_relative_url: (null) ssh://hostname/repo ../../subrepo => ssh://subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' 'ssh://hostname/repo' '../../subrepo') &&
test "$actual" = 'ssh://subrepo'
ok 204 - test_submodule_relative_url: (null) ssh://hostname/repo ../../subrepo => ssh://subrepo
expecting success of 0060.205 'test_submodule_relative_url: (null) ssh://hostname/repo ../../../subrepo => ssh:/subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' 'ssh://hostname/repo' '../../../subrepo') &&
test "$actual" = 'ssh:/subrepo'
ok 205 - test_submodule_relative_url: (null) ssh://hostname/repo ../../../subrepo => ssh:/subrepo
expecting success of 0060.206 'test_submodule_relative_url: (null) ssh://hostname/repo ../../../../subrepo => ssh:subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' 'ssh://hostname/repo' '../../../../subrepo') &&
test "$actual" = 'ssh:subrepo'
ok 206 - test_submodule_relative_url: (null) ssh://hostname/repo ../../../../subrepo => ssh:subrepo
expecting success of 0060.207 'test_submodule_relative_url: (null) ssh://hostname/repo ../../../../../subrepo => .:subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' 'ssh://hostname/repo' '../../../../../subrepo') &&
test "$actual" = '.:subrepo'
ok 207 - test_submodule_relative_url: (null) ssh://hostname/repo ../../../../../subrepo => .:subrepo
expecting success of 0060.208 'test_submodule_relative_url: (null) ssh://hostname:22/repo ../subrepo => ssh://hostname:22/subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' 'ssh://hostname:22/repo' '../subrepo') &&
test "$actual" = 'ssh://hostname:22/subrepo'
ok 208 - test_submodule_relative_url: (null) ssh://hostname:22/repo ../subrepo => ssh://hostname:22/subrepo
expecting success of 0060.209 'test_submodule_relative_url: (null) user@host:path/to/repo ../subrepo => user@host:path/to/subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' 'user@host:path/to/repo' '../subrepo') &&
test "$actual" = 'user@host:path/to/subrepo'
ok 209 - test_submodule_relative_url: (null) user@host:path/to/repo ../subrepo => user@host:path/to/subrepo
expecting success of 0060.210 'test_submodule_relative_url: (null) user@host:repo ../subrepo => user@host:subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' 'user@host:repo' '../subrepo') &&
test "$actual" = 'user@host:subrepo'
ok 210 - test_submodule_relative_url: (null) user@host:repo ../subrepo => user@host:subrepo
expecting success of 0060.211 'test_submodule_relative_url: (null) user@host:repo ../../subrepo => .:subrepo':
actual=$(test-tool submodule resolve-relative-url '(null)' 'user@host:repo' '../../subrepo') &&
test "$actual" = '.:subrepo'
ok 211 - test_submodule_relative_url: (null) user@host:repo ../../subrepo => .:subrepo
expecting success of 0060.212 'match .gitmodules':
test-tool path-utils is_dotgitmodules \
.gitmodules \
\
.git${u200c}modules \
\
.Gitmodules \
.gitmoduleS \
\
".gitmodules " \
".gitmodules." \
".gitmodules " \
".gitmodules. " \
".gitmodules ." \
".gitmodules.." \
".gitmodules " \
".gitmodules. " \
".gitmodules . " \
".gitmodules ." \
\
".Gitmodules " \
".Gitmodules." \
".Gitmodules " \
".Gitmodules. " \
".Gitmodules ." \
".Gitmodules.." \
".Gitmodules " \
".Gitmodules. " \
".Gitmodules . " \
".Gitmodules ." \
\
GITMOD~1 \
gitmod~1 \
GITMOD~2 \
gitmod~3 \
GITMOD~4 \
\
"GITMOD~1 " \
"gitmod~2." \
"GITMOD~3 " \
"gitmod~4. " \
"GITMOD~1 ." \
"gitmod~2 " \
"GITMOD~3. " \
"gitmod~4 . " \
\
GI7EBA~1 \
gi7eba~9 \
\
GI7EB~10 \
GI7EB~11 \
GI7EB~99 \
GI7EB~10 \
GI7E~100 \
GI7E~101 \
GI7E~999 \
~1000000 \
~9999999 \
\
.gitmodules:\$DATA \
"gitmod~4 . :\$DATA" \
\
--not \
".gitmodules x" \
".gitmodules .x" \
\
" .gitmodules" \
\
..gitmodules \
\
gitmodules \
\
.gitmodule \
\
".gitmodules x " \
".gitmodules .x" \
\
GI7EBA~ \
GI7EBA~0 \
GI7EBA~~1 \
GI7EBA~X \
Gx7EBA~1 \
GI7EBX~1 \
\
GI7EB~1 \
GI7EB~01 \
GI7EB~1X \
\
.gitmodules,:\$DATA
ok: '.gitmodules' is .gitmodules
ok: '.gitmodules' is .gitmodules
ok: '.Gitmodules' is .gitmodules
ok: '.gitmoduleS' is .gitmodules
ok: '.gitmodules ' is .gitmodules
ok: '.gitmodules.' is .gitmodules
ok: '.gitmodules ' is .gitmodules
ok: '.gitmodules. ' is .gitmodules
ok: '.gitmodules .' is .gitmodules
ok: '.gitmodules..' is .gitmodules
ok: '.gitmodules ' is .gitmodules
ok: '.gitmodules. ' is .gitmodules
ok: '.gitmodules . ' is .gitmodules
ok: '.gitmodules .' is .gitmodules
ok: '.Gitmodules ' is .gitmodules
ok: '.Gitmodules.' is .gitmodules
ok: '.Gitmodules ' is .gitmodules
ok: '.Gitmodules. ' is .gitmodules
ok: '.Gitmodules .' is .gitmodules
ok: '.Gitmodules..' is .gitmodules
ok: '.Gitmodules ' is .gitmodules
ok: '.Gitmodules. ' is .gitmodules
ok: '.Gitmodules . ' is .gitmodules
ok: '.Gitmodules .' is .gitmodules
ok: 'GITMOD~1' is .gitmodules
ok: 'gitmod~1' is .gitmodules
ok: 'GITMOD~2' is .gitmodules
ok: 'gitmod~3' is .gitmodules
ok: 'GITMOD~4' is .gitmodules
ok: 'GITMOD~1 ' is .gitmodules
ok: 'gitmod~2.' is .gitmodules
ok: 'GITMOD~3 ' is .gitmodules
ok: 'gitmod~4. ' is .gitmodules
ok: 'GITMOD~1 .' is .gitmodules
ok: 'gitmod~2 ' is .gitmodules
ok: 'GITMOD~3. ' is .gitmodules
ok: 'gitmod~4 . ' is .gitmodules
ok: 'GI7EBA~1' is .gitmodules
ok: 'gi7eba~9' is .gitmodules
ok: 'GI7EB~10' is .gitmodules
ok: 'GI7EB~11' is .gitmodules
ok: 'GI7EB~99' is .gitmodules
ok: 'GI7EB~10' is .gitmodules
ok: 'GI7E~100' is .gitmodules
ok: 'GI7E~101' is .gitmodules
ok: 'GI7E~999' is .gitmodules
ok: '~1000000' is .gitmodules
ok: '~9999999' is .gitmodules
ok: '.gitmodules:$DATA' is .gitmodules
ok: 'gitmod~4 . :$DATA' is .gitmodules
ok: '.gitmodules x' is not .gitmodules
ok: '.gitmodules .x' is not .gitmodules
ok: ' .gitmodules' is not .gitmodules
ok: '..gitmodules' is not .gitmodules
ok: 'gitmodules' is not .gitmodules
ok: '.gitmodule' is not .gitmodules
ok: '.gitmodules x ' is not .gitmodules
ok: '.gitmodules .x' is not .gitmodules
ok: 'GI7EBA~' is not .gitmodules
ok: 'GI7EBA~0' is not .gitmodules
ok: 'GI7EBA~~1' is not .gitmodules
ok: 'GI7EBA~X' is not .gitmodules
ok: 'Gx7EBA~1' is not .gitmodules
ok: 'GI7EBX~1' is not .gitmodules
ok: 'GI7EB~1' is not .gitmodules
ok: 'GI7EB~01' is not .gitmodules
ok: 'GI7EB~1X' is not .gitmodules
ok: '.gitmodules,:$DATA' is not .gitmodules
ok 212 - match .gitmodules
expecting success of 0060.213 'match .gitattributes':
test-tool path-utils is_dotgitattributes \
.gitattributes \
.git${u200c}attributes \
.Gitattributes \
.gitattributeS \
GITATT~1 \
GI7D29~1
ok: '.gitattributes' is .gitattributes
ok: '.gitattributes' is .gitattributes
ok: '.Gitattributes' is .gitattributes
ok: '.gitattributeS' is .gitattributes
ok: 'GITATT~1' is .gitattributes
ok: 'GI7D29~1' is .gitattributes
ok 213 - match .gitattributes
expecting success of 0060.214 'match .gitignore':
test-tool path-utils is_dotgitignore \
.gitignore \
.git${u200c}ignore \
.Gitignore \
.gitignorE \
GITIGN~1 \
GI250A~1
ok: '.gitignore' is .gitignore
ok: '.gitignore' is .gitignore
ok: '.Gitignore' is .gitignore
ok: '.gitignorE' is .gitignore
ok: 'GITIGN~1' is .gitignore
ok: 'GI250A~1' is .gitignore
ok 214 - match .gitignore
expecting success of 0060.215 'match .mailmap':
test-tool path-utils is_dotmailmap \
.mailmap \
.mail${u200c}map \
.Mailmap \
.mailmaP \
MAILMA~1 \
MABA30~1
ok: '.mailmap' is .gitmailmap
ok: '.mailmap' is .gitmailmap
ok: '.Mailmap' is .gitmailmap
ok: '.mailmaP' is .gitmailmap
ok: 'MAILMA~1' is .gitmailmap
ok: 'MABA30~1' is .gitmailmap
ok 215 - match .mailmap
ok 216 # skip is_valid_path() on Windows (missing MINGW)
checking prerequisite: RUNTIME_PREFIX
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-RUNTIME_PREFIX" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-RUNTIME_PREFIX" &&
test true = "$RUNTIME_PREFIX"
)
prerequisite RUNTIME_PREFIX not satisfied
checking prerequisite: CAN_EXEC_IN_PWD
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-CAN_EXEC_IN_PWD" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-CAN_EXEC_IN_PWD" &&
cp "$GIT_EXEC_PATH"/git$X ./ &&
./git rev-parse
)
prerequisite CAN_EXEC_IN_PWD ok
ok 217 # skip RUNTIME_PREFIX works (missing RUNTIME_PREFIX of !VALGRIND,RUNTIME_PREFIX,CAN_EXEC_IN_PWD)
ok 218 # skip %(prefix)/ works (missing RUNTIME_PREFIX of !VALGRIND,RUNTIME_PREFIX,CAN_EXEC_IN_PWD)
# passed all 218 test(s)
1..218
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0061-run-command.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0061-run-command/.git/
ok 1 # skip subprocess inherits only std handles (missing MINGW)
expecting success of 0061.2 'start_command reports ENOENT (slash)':
test-tool run-command start-command-ENOENT ./does-not-exist 2>err &&
test_i18ngrep "\./does-not-exist" err
fatal: cannot run ./does-not-exist: No such file or directory
ok 2 - start_command reports ENOENT (slash)
expecting success of 0061.3 'start_command reports ENOENT (no slash)':
test-tool run-command start-command-ENOENT does-not-exist 2>err &&
test_i18ngrep "does-not-exist" err
error: cannot run does-not-exist: No such file or directory
ok 3 - start_command reports ENOENT (no slash)
expecting success of 0061.4 'run_command can run a command':
cat hello-script >hello.sh &&
chmod +x hello.sh &&
test-tool run-command run-command ./hello.sh >actual 2>err &&
test_cmp hello-script actual &&
test_must_be_empty err
ok 4 - run_command can run a command
checking prerequisite: RUNS_COMMANDS_FROM_PWD
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-RUNS_COMMANDS_FROM_PWD" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-RUNS_COMMANDS_FROM_PWD" &&
write_script runs-commands-from-pwd <<-\EOF &&
true
EOF
runs-commands-from-pwd >/dev/null 2>&1
)
prerequisite RUNS_COMMANDS_FROM_PWD not satisfied
expecting success of 0061.5 'run_command is restricted to PATH':
write_script should-not-run <<-\EOF &&
echo yikes
EOF
test_must_fail test-tool run-command run-command should-not-run 2>err &&
test_i18ngrep "should-not-run" err
error: cannot run should-not-run: No such file or directory
ok 5 - run_command is restricted to PATH
expecting success of 0061.6 'run_command can run a script without a #! line':
cat >hello <<-\EOF &&
cat hello-script
EOF
chmod +x hello &&
test-tool run-command run-command ./hello >actual 2>err &&
test_cmp hello-script actual &&
test_must_be_empty err
ok 6 - run_command can run a script without a #! line
expecting success of 0061.7 'run_command does not try to execute a directory':
test_when_finished "rm -rf bin1 bin2" &&
mkdir -p bin1/greet bin2 &&
write_script bin2/greet <<-\EOF &&
cat bin2/greet
EOF
PATH=$PWD/bin1:$PWD/bin2:$PATH \
test-tool run-command run-command greet >actual 2>err &&
test_cmp bin2/greet actual &&
test_must_be_empty err
ok 7 - run_command does not try to execute a directory
expecting success of 0061.8 'run_command passes over non-executable file':
test_when_finished "rm -rf bin1 bin2" &&
mkdir -p bin1 bin2 &&
write_script bin1/greet <<-\EOF &&
cat bin1/greet
EOF
chmod -x bin1/greet &&
write_script bin2/greet <<-\EOF &&
cat bin2/greet
EOF
PATH=$PWD/bin1:$PWD/bin2:$PATH \
test-tool run-command run-command greet >actual 2>err &&
test_cmp bin2/greet actual &&
test_must_be_empty err
ok 8 - run_command passes over non-executable file
expecting success of 0061.9 'run_command reports EACCES':
cat hello-script >hello.sh &&
chmod -x hello.sh &&
test_must_fail test-tool run-command run-command ./hello.sh 2>err &&
grep "fatal: cannot exec.*hello.sh" err
fatal: cannot exec './hello.sh': Permission denied
ok 9 - run_command reports EACCES
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 0061.10 'unreadable directory in PATH':
mkdir local-command &&
test_when_finished "chmod u+rwx local-command && rm -fr local-command" &&
git config alias.nitfol "!echo frotz" &&
chmod a-rx local-command &&
(
PATH=./local-command:$PATH &&
git nitfol >actual
) &&
echo frotz >expect &&
test_cmp expect actual
ok 10 - unreadable directory in PATH
expecting success of 0061.11 'run_command runs in parallel with more jobs available than tasks':
test-tool run-command run-command-parallel 5 sh -c "printf \"%s\n%s\n\" Hello World" >out 2>actual &&
test_must_be_empty out &&
test_cmp expect actual
ok 11 - run_command runs in parallel with more jobs available than tasks
expecting success of 0061.12 'run_command runs ungrouped in parallel with more jobs available than tasks':
test-tool run-command --ungroup run-command-parallel 5 sh -c "printf \"%s\n%s\n\" Hello World" >out 2>err &&
test_line_count = 8 out &&
test_line_count = 4 err
ok 12 - run_command runs ungrouped in parallel with more jobs available than tasks
expecting success of 0061.13 'run_command runs in parallel with as many jobs as tasks':
test-tool run-command run-command-parallel 4 sh -c "printf \"%s\n%s\n\" Hello World" >out 2>actual &&
test_must_be_empty out &&
test_cmp expect actual
ok 13 - run_command runs in parallel with as many jobs as tasks
expecting success of 0061.14 'run_command runs ungrouped in parallel with as many jobs as tasks':
test-tool run-command --ungroup run-command-parallel 4 sh -c "printf \"%s\n%s\n\" Hello World" >out 2>err &&
test_line_count = 8 out &&
test_line_count = 4 err
ok 14 - run_command runs ungrouped in parallel with as many jobs as tasks
expecting success of 0061.15 'run_command runs in parallel with more tasks than jobs available':
test-tool run-command run-command-parallel 3 sh -c "printf \"%s\n%s\n\" Hello World" >out 2>actual &&
test_must_be_empty out &&
test_cmp expect actual
ok 15 - run_command runs in parallel with more tasks than jobs available
expecting success of 0061.16 'run_command runs ungrouped in parallel with more tasks than jobs available':
test-tool run-command --ungroup run-command-parallel 3 sh -c "printf \"%s\n%s\n\" Hello World" >out 2>err &&
test_line_count = 8 out &&
test_line_count = 4 err
ok 16 - run_command runs ungrouped in parallel with more tasks than jobs available
expecting success of 0061.17 'run_command is asked to abort gracefully':
test-tool run-command run-command-abort 3 false >out 2>actual &&
test_must_be_empty out &&
test_cmp expect actual
ok 17 - run_command is asked to abort gracefully
expecting success of 0061.18 'run_command is asked to abort gracefully (ungroup)':
test-tool run-command --ungroup run-command-abort 3 false >out 2>err &&
test_must_be_empty out &&
test_line_count = 6 err
ok 18 - run_command is asked to abort gracefully (ungroup)
expecting success of 0061.19 'run_command outputs ':
test-tool run-command run-command-no-jobs 3 sh -c "printf \"%s\n%s\n\" Hello World" >out 2>actual &&
test_must_be_empty out &&
test_cmp expect actual
ok 19 - run_command outputs
expecting success of 0061.20 'run_command outputs (ungroup) ':
test-tool run-command --ungroup run-command-no-jobs 3 sh -c "printf \"%s\n%s\n\" Hello World" >out 2>err &&
test_must_be_empty out &&
test_cmp expect err
ok 20 - run_command outputs (ungroup)
expecting success of 0061.21 'GIT_TRACE with environment variables':
test_trace "abc=1 def=2" env abc=1 env def=2 &&
test_trace "abc=2" env abc env abc=1 env abc=2 &&
test_trace "abc=2" env abc env abc=2 &&
(
abc=1 && export abc &&
test_trace "def=1" env abc=1 env def=1
) &&
(
abc=1 && export abc &&
test_trace "def=1" env abc env abc=1 env def=1
) &&
test_trace "def=1" env non-exist env def=1 &&
test_trace "abc=2" env abc=1 env abc env abc=2 &&
(
abc=1 def=2 && export abc def &&
test_trace "unset abc def;" env abc env def
) &&
(
abc=1 def=2 && export abc def &&
test_trace "unset def; abc=3" env abc env def env abc=3
) &&
(
abc=1 && export abc &&
test_trace "unset abc;" env abc=2 env abc
)
ok 21 - GIT_TRACE with environment variables
ok 22 # skip verify curlies are quoted properly (missing MINGW)
ok 23 # skip can spawn .bat with argv[0] containing spaces (missing MINGW)
# passed all 23 test(s)
1..23
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0062-revision-walking.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a
[master 4505e02] add b
Author: A U Thor <author@example.com>
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0063-string-list.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0063-string-list/.git/
expecting success of 0063.1 'split foo:bar:baz at :, max -1':
test-tool string-list split 'foo:bar:baz' ':' '-1' >actual &&
test_cmp expected actual &&
test-tool string-list split_in_place 'foo:bar:baz' ':' '-1' >actual &&
test_cmp expected actual
ok 1 - split foo:bar:baz at :, max -1
expecting success of 0063.2 'split foo:bar:baz at :, max 0':
test-tool string-list split 'foo:bar:baz' ':' '0' >actual &&
test_cmp expected actual &&
test-tool string-list split_in_place 'foo:bar:baz' ':' '0' >actual &&
test_cmp expected actual
ok 2 - split foo:bar:baz at :, max 0
expecting success of 0063.3 'split foo:bar:baz at :, max 1':
test-tool string-list split 'foo:bar:baz' ':' '1' >actual &&
test_cmp expected actual &&
test-tool string-list split_in_place 'foo:bar:baz' ':' '1' >actual &&
test_cmp expected actual
ok 3 - split foo:bar:baz at :, max 1
expecting success of 0063.4 'split foo:bar:baz at :, max 2':
test-tool string-list split 'foo:bar:baz' ':' '2' >actual &&
test_cmp expected actual &&
test-tool string-list split_in_place 'foo:bar:baz' ':' '2' >actual &&
test_cmp expected actual
ok 4 - split foo:bar:baz at :, max 2
expecting success of 0063.5 'split foo:bar: at :, max -1':
test-tool string-list split 'foo:bar:' ':' '-1' >actual &&
test_cmp expected actual &&
test-tool string-list split_in_place 'foo:bar:' ':' '-1' >actual &&
test_cmp expected actual
ok 5 - split foo:bar: at :, max -1
expecting success of 0063.6 'split at :, max -1':
test-tool string-list split '' ':' '-1' >actual &&
test_cmp expected actual &&
test-tool string-list split_in_place '' ':' '-1' >actual &&
test_cmp expected actual
ok 6 - split at :, max -1
expecting success of 0063.7 'split : at :, max -1':
test-tool string-list split ':' ':' '-1' >actual &&
test_cmp expected actual &&
test-tool string-list split_in_place ':' ':' '-1' >actual &&
test_cmp expected actual
ok 7 - split : at :, max -1
expecting success of 0063.8 'test filter_string_list':
test "x-" = "x$(test-tool string-list filter - y)" &&
test "x-" = "x$(test-tool string-list filter no y)" &&
test yes = "$(test-tool string-list filter yes y)" &&
test yes = "$(test-tool string-list filter no:yes y)" &&
test yes = "$(test-tool string-list filter yes:no y)" &&
test y1:y2 = "$(test-tool string-list filter y1:y2 y)" &&
test y2:y1 = "$(test-tool string-list filter y2:y1 y)" &&
test "x-" = "x$(test-tool string-list filter x1:x2 y)"
ok 8 - test filter_string_list
expecting success of 0063.9 'test remove_duplicates':
test "x-" = "x$(test-tool string-list remove_duplicates -)" &&
test "x" = "x$(test-tool string-list remove_duplicates "")" &&
test a = "$(test-tool string-list remove_duplicates a)" &&
test a = "$(test-tool string-list remove_duplicates a:a)" &&
test a = "$(test-tool string-list remove_duplicates a:a:a:a:a)" &&
test a:b = "$(test-tool string-list remove_duplicates a:b)" &&
test a:b = "$(test-tool string-list remove_duplicates a:a:b)" &&
test a:b = "$(test-tool string-list remove_duplicates a:b:b)" &&
test a:b:c = "$(test-tool string-list remove_duplicates a:b:c)" &&
test a:b:c = "$(test-tool string-list remove_duplicates a:a:b:c)" &&
test a:b:c = "$(test-tool string-list remove_duplicates a:b:b:c)" &&
test a:b:c = "$(test-tool string-list remove_duplicates a:b:c:c)" &&
test a:b:c = "$(test-tool string-list remove_duplicates a:a:b:b:c:c)" &&
test a:b:c = "$(test-tool string-list remove_duplicates a:a:a:b:b:b:c:c:c)"
ok 9 - test remove_duplicates
# passed all 9 test(s)
1..9
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0064-oid-array.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0064-oid-array/.git/
expecting success of 0064.1 'ordered enumeration':
echoid "" 44 55 88 aa >expect &&
{
echoid append 88 44 aa 55 &&
echo for_each_unique
} | test-tool oid-array >actual &&
test_cmp expect actual
ok 1 - ordered enumeration
expecting success of 0064.2 'ordered enumeration with duplicate suppression':
echoid "" 44 55 88 aa >expect &&
{
echoid append 88 44 aa 55 &&
echoid append 88 44 aa 55 &&
echoid append 88 44 aa 55 &&
echo for_each_unique
} | test-tool oid-array >actual &&
test_cmp expect actual
ok 2 - ordered enumeration with duplicate suppression
expecting success of 0064.3 'lookup':
{
echoid append 88 44 aa 55 &&
echoid lookup 55
} | test-tool oid-array >actual &&
n=$(cat actual) &&
test "$n" -eq 1
ok 3 - lookup
expecting success of 0064.4 'lookup non-existing entry':
{
echoid append 88 44 aa 55 &&
echoid lookup 33
} | test-tool oid-array >actual &&
n=$(cat actual) &&
test "$n" -lt 0
ok 4 - lookup non-existing entry
expecting success of 0064.5 'lookup with duplicates':
{
echoid append 88 44 aa 55 &&
echoid append 88 44 aa 55 &&
echoid append 88 44 aa 55 &&
echoid lookup 55
} | test-tool oid-array >actual &&
n=$(cat actual) &&
test "$n" -ge 3 &&
test "$n" -le 5
ok 5 - lookup with duplicates
expecting success of 0064.6 'lookup non-existing entry with duplicates':
{
echoid append 88 44 aa 55 &&
echoid append 88 44 aa 55 &&
echoid append 88 44 aa 55 &&
echoid lookup 66
} | test-tool oid-array >actual &&
n=$(cat actual) &&
test "$n" -lt 0
ok 6 - lookup non-existing entry with duplicates
expecting success of 0064.7 'lookup with almost duplicate values':
# n-1 5s
root=$(echoid "" 55) &&
root=${root%5} &&
{
id1="${root}5" &&
id2="${root}f" &&
echo "append $id1" &&
echo "append $id2" &&
echoid lookup 55
} | test-tool oid-array >actual &&
n=$(cat actual) &&
test "$n" -eq 0
ok 7 - lookup with almost duplicate values
expecting success of 0064.8 'lookup with single duplicate value':
{
echoid append 55 55 &&
echoid lookup 55
} | test-tool oid-array >actual &&
n=$(cat actual) &&
test "$n" -ge 0 &&
test "$n" -le 1
ok 8 - lookup with single duplicate value
# passed all 8 test(s)
1..8
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0065-strcmp-offset.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0066-dir-iterator.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0066-dir-iterator/.git/
expecting success of 0066.1 'setup':
mkdir -p dir &&
mkdir -p dir/a/b/c/ &&
>dir/b &&
>dir/c &&
mkdir -p dir/d/e/d/ &&
>dir/a/b/c/d &&
>dir/a/e &&
>dir/d/e/d/a &&
mkdir -p dir2/a/b/c/ &&
>dir2/a/b/c/d
ok 1 - setup
expecting success of 0066.2 'dir-iterator should iterate through all files':
cat >expected-iteration-sorted-output <<-EOF &&
[d] (a) [a] ./dir/a
[d] (a/b) [b] ./dir/a/b
[d] (a/b/c) [c] ./dir/a/b/c
[d] (d) [d] ./dir/d
[d] (d/e) [e] ./dir/d/e
[d] (d/e/d) [d] ./dir/d/e/d
[f] (a/b/c/d) [d] ./dir/a/b/c/d
[f] (a/e) [e] ./dir/a/e
[f] (b) [b] ./dir/b
[f] (c) [c] ./dir/c
[f] (d/e/d/a) [a] ./dir/d/e/d/a
EOF
test-tool dir-iterator ./dir >out &&
sort out >./actual-iteration-sorted-output &&
test_cmp expected-iteration-sorted-output actual-iteration-sorted-output
ok 2 - dir-iterator should iterate through all files
expecting success of 0066.3 'dir-iterator should list files in the correct order':
cat >expected-pre-order-output <<-EOF &&
[d] (a) [a] ./dir2/a
[d] (a/b) [b] ./dir2/a/b
[d] (a/b/c) [c] ./dir2/a/b/c
[f] (a/b/c/d) [d] ./dir2/a/b/c/d
EOF
test-tool dir-iterator ./dir2 >actual-pre-order-output &&
test_cmp expected-pre-order-output actual-pre-order-output
ok 3 - dir-iterator should list files in the correct order
expecting success of 0066.4 'begin should fail upon inexistent paths':
test_must_fail test-tool dir-iterator ./inexistent-path \
>actual-inexistent-path-output &&
echo "dir_iterator_begin failure: ENOENT" >expected-inexistent-path-output &&
test_cmp expected-inexistent-path-output actual-inexistent-path-output
ok 4 - begin should fail upon inexistent paths
expecting success of 0066.5 'begin should fail upon non directory paths':
test_must_fail test-tool dir-iterator ./dir/b >actual-non-dir-output &&
echo "dir_iterator_begin failure: ENOTDIR" >expected-non-dir-output &&
test_cmp expected-non-dir-output actual-non-dir-output
ok 5 - begin should fail upon non directory paths
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 0066.6 'advance should not fail on errors by default':
cat >expected-no-permissions-output <<-EOF &&
[d] (a) [a] ./dir3/a
EOF
mkdir -p dir3/a &&
>dir3/a/b &&
chmod 0 dir3/a &&
test-tool dir-iterator ./dir3 >actual-no-permissions-output &&
test_cmp expected-no-permissions-output actual-no-permissions-output &&
chmod 755 dir3/a &&
rm -rf dir3
warning: error opening directory './dir3/a/': Permission denied
ok 6 - advance should not fail on errors by default
expecting success of 0066.7 'advance should fail on errors, w/ pedantic flag':
cat >expected-no-permissions-pedantic-output <<-EOF &&
[d] (a) [a] ./dir3/a
dir_iterator_advance failure
EOF
mkdir -p dir3/a &&
>dir3/a/b &&
chmod 0 dir3/a &&
test_must_fail test-tool dir-iterator --pedantic ./dir3 \
>actual-no-permissions-pedantic-output &&
test_cmp expected-no-permissions-pedantic-output \
actual-no-permissions-pedantic-output &&
chmod 755 dir3/a &&
rm -rf dir3
warning: error opening directory './dir3/a/': Permission denied
ok 7 - advance should fail on errors, w/ pedantic flag
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 0066.8 'setup dirs with symlinks':
mkdir -p dir4/a &&
mkdir -p dir4/b/c &&
>dir4/a/d &&
ln -s d dir4/a/e &&
ln -s ../b dir4/a/f &&
ln -s dir4 dir5
ok 8 - setup dirs with symlinks
expecting success of 0066.9 'dir-iterator should not follow symlinks by default':
cat >expected-no-follow-sorted-output <<-EOF &&
[d] (a) [a] ./dir4/a
[d] (b) [b] ./dir4/b
[d] (b/c) [c] ./dir4/b/c
[f] (a/d) [d] ./dir4/a/d
[s] (a/e) [e] ./dir4/a/e
[s] (a/f) [f] ./dir4/a/f
EOF
test-tool dir-iterator ./dir4 >out &&
sort out >actual-no-follow-sorted-output &&
test_cmp expected-no-follow-sorted-output actual-no-follow-sorted-output
ok 9 - dir-iterator should not follow symlinks by default
expecting success of 0066.10 'dir-iterator does not resolve top-level symlinks':
test_must_fail test-tool dir-iterator ./dir5 >out &&
grep "ENOTDIR" out
dir_iterator_begin failure: ENOTDIR
ok 10 - dir-iterator does not resolve top-level symlinks
# passed all 10 test(s)
1..10
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0021-conversion.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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.o >test.t &&
test_cmp test.r test.t
ok 2 - check
expecting success of 0021.3 'expanded_in_repo':
cat >expanded-keywords.0 <<-\EOF &&
File with expanded keywords
$Id$
$Id:$
$Id: 0000000000000000000000000000000000000000 $
$Id: NoSpaceAtEnd$
$Id:NoSpaceAtFront $
$Id:NoSpaceAtEitherEnd$
$Id: NoTerminatingSymbol
$Id: Foreign Commit With Spaces $
EOF
{
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) &&
cat >expected-output.0 <<-EOF &&
File with expanded keywords
\$Id: $id \$
\$Id: $id \$
\$Id: $id \$
\$Id: $id \$
\$Id: $id \$
\$Id: $id \$
\$Id: NoTerminatingSymbol
\$Id: Foreign Commit With Spaces \$
EOF
{
cat expected-output.0 &&
printf "\$Id: NoTerminatingSymbolAtEOF"
} >expected-output &&
{
append_cr <expected-output.0 &&
printf "\$Id: NoTerminatingSymbolAtEOF"
} >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
[main (root-commit) bf31399] File with keywords expanded
Author: A U Thor <author@example.com>
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 <test.o >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
expecting success of 0021.8 'required filter with absent clean field':
test_config filter.absentclean.smudge cat &&
test_config filter.absentclean.required true &&
echo "*.ac filter=absentclean" >.gitattributes &&
echo test >test.ac &&
test_must_fail git add test.ac 2>stderr &&
test_i18ngrep "fatal: test.ac: clean filter .absentclean. failed" stderr
fatal: test.ac: clean filter 'absentclean' failed
ok 8 - required filter with absent clean field
expecting success of 0021.9 'required filter with absent smudge field':
test_config filter.absentsmudge.clean cat &&
test_config filter.absentsmudge.required true &&
echo "*.as filter=absentsmudge" >.gitattributes &&
echo test >test.as &&
git add test.as &&
rm -f test.as &&
test_must_fail git checkout -- test.as 2>stderr &&
test_i18ngrep "fatal: test.as: smudge filter absentsmudge failed" stderr
fatal: test.as: smudge filter absentsmudge failed
ok 9 - required filter with absent smudge field
expecting success of 0021.10 'filtering large input to small output should use little memory':
test_config filter.devnull.clean "cat >/dev/null" &&
test_config filter.devnull.required true &&
for i in $(test_seq 1 30); do printf "%1048576d" 1 || return 1; done >30MB &&
echo "30MB filter=devnull" >.gitattributes &&
GIT_MMAP_LIMIT=1m GIT_ALLOC_LIMIT=1m git add 30MB
ok 10 - filtering large input to small output should use little memory
expecting success of 0021.11 'filter that does not read is fine':
test-tool genrandom foo $((128 * 1024 + 1)) >big &&
echo "big filter=epipe" >.gitattributes &&
test_config filter.epipe.clean "echo xyzzy" &&
git add big &&
git cat-file blob :big >actual &&
echo xyzzy >expect &&
test_cmp expect actual
ok 11 - filter that does not read is fine
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 12 # skip filter large file (missing EXPENSIVE)
expecting success of 0021.13 'filter: clean empty file':
test_config filter.in-repo-header.clean "echo cleaned && cat" &&
test_config filter.in-repo-header.smudge "sed 1d" &&
echo "empty-in-worktree filter=in-repo-header" >>.gitattributes &&
>empty-in-worktree &&
echo cleaned >expected &&
git add empty-in-worktree &&
git show :empty-in-worktree >actual &&
test_cmp expected actual
ok 13 - filter: clean empty file
expecting success of 0021.14 'filter: smudge empty file':
test_config filter.empty-in-repo.clean "cat >/dev/null" &&
test_config filter.empty-in-repo.smudge "echo smudged && cat" &&
echo "empty-in-repo filter=empty-in-repo" >>.gitattributes &&
echo dead data walking >empty-in-repo &&
git add empty-in-repo &&
echo smudged >expected &&
git checkout-index --prefix=filtered- empty-in-repo &&
test_cmp expected filtered-empty-in-repo
ok 14 - filter: smudge empty file
expecting success of 0021.15 'disable filter with empty override':
test_config_global filter.disable.smudge false &&
test_config_global filter.disable.clean false &&
test_config filter.disable.smudge false &&
test_config filter.disable.clean false &&
echo "*.disable filter=disable" >.gitattributes &&
echo test >test.disable &&
git -c filter.disable.clean= add test.disable 2>err &&
test_must_be_empty err &&
rm -f test.disable &&
git -c filter.disable.smudge= checkout -- test.disable 2>err &&
test_must_be_empty err
ok 15 - disable filter with empty override
expecting success of 0021.16 'diff does not reuse worktree files that need cleaning':
test_config filter.counter.clean "echo . >>count; sed s/^/clean:/" &&
echo "file filter=counter" >.gitattributes &&
test_commit one file &&
test_commit two file &&
>count &&
git diff-tree -p HEAD &&
test_line_count = 0 count
[main 2e1b3a0] one
Author: A U Thor <author@example.com>
9 files changed, 9 insertions(+)
create mode 100644 30MB
create mode 100644 big
create mode 100644 empty-in-repo
create mode 100644 empty-in-worktree
create mode 100644 file
create mode 100644 test.as
create mode 100644 test.disable
create mode 100644 test.fs
create mode 100644 test.r
[main 5763447] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
57634479428deffd4cbb8230d4ff66a3801fc1be
diff --git a/file b/file
index e4a1655..0c54b7b 100644
--- a/file
+++ b/file
@@ -1 +1 @@
-clean:one
+clean:two
ok 16 - diff does not reuse worktree files that need cleaning
expecting success of 0021.17 'required process filter should filter data':
test_config_global filter.protocol.process "test-tool rot13-filter --log=debug.log clean smudge" &&
test_config_global filter.protocol.required true &&
rm -rf repo &&
mkdir repo &&
(
cd repo &&
git init &&
echo "*.r filter=protocol" >.gitattributes &&
git add . &&
git commit -m "test commit 1" &&
git branch empty-branch &&
cp "$TEST_ROOT/test.o" test.r &&
cp "$TEST_ROOT/test2.o" test2.r &&
mkdir testsubdir &&
cp "$TEST_ROOT/test3 'sq',\$x=.o" "testsubdir/test3 'sq',\$x=.r" &&
>test4-empty.r &&
S=$(test_file_size test.r) &&
S2=$(test_file_size test2.r) &&
S3=$(test_file_size "testsubdir/test3 'sq',\$x=.r") &&
M=$(git hash-object test.r) &&
M2=$(git hash-object test2.r) &&
M3=$(git hash-object "testsubdir/test3 'sq',\$x=.r") &&
EMPTY=$(git hash-object /dev/null) &&
filter_git add . &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: clean test.r $S [OK] -- OUT: $S . [OK]
IN: clean test2.r $S2 [OK] -- OUT: $S2 . [OK]
IN: clean test4-empty.r 0 [OK] -- OUT: 0 [OK]
IN: clean testsubdir/test3 'sq',\$x=.r $S3 [OK] -- OUT: $S3 . [OK]
STOP
EOF
test_cmp_count expected.log debug.log &&
git commit -m "test commit 2" &&
MAIN=$(git rev-parse --verify main) &&
META="ref=refs/heads/main treeish=$MAIN" &&
rm -f test2.r "testsubdir/test3 'sq',\$x=.r" &&
filter_git checkout --quiet --no-progress . &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: smudge test2.r blob=$M2 $S2 [OK] -- OUT: $S2 . [OK]
IN: smudge testsubdir/test3 'sq',\$x=.r blob=$M3 $S3 [OK] -- OUT: $S3 . [OK]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log &&
# Make sure that the file appears dirty, so checkout below has to
# run the configured filter.
touch test.r &&
filter_git checkout --quiet --no-progress empty-branch &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: clean test.r $S [OK] -- OUT: $S . [OK]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log &&
filter_git checkout --quiet --no-progress main &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: smudge test.r $META blob=$M $S [OK] -- OUT: $S . [OK]
IN: smudge test2.r $META blob=$M2 $S2 [OK] -- OUT: $S2 . [OK]
IN: smudge test4-empty.r $META blob=$EMPTY 0 [OK] -- OUT: 0 [OK]
IN: smudge testsubdir/test3 'sq',\$x=.r $META blob=$M3 $S3 [OK] -- OUT: $S3 . [OK]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test.r &&
test_cmp_committed_rot13 "$TEST_ROOT/test2.o" test2.r &&
test_cmp_committed_rot13 "$TEST_ROOT/test3 'sq',\$x=.o" "testsubdir/test3 'sq',\$x=.r"
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
[main (root-commit) 56d459b] test commit 1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 .gitattributes
[main 9ea74df] test commit 2
Author: A U Thor <author@example.com>
4 files changed, 5 insertions(+)
create mode 100644 test.r
create mode 100644 test2.r
create mode 100644 test4-empty.r
create mode 100644 testsubdir/test3 'sq',$x=.r
ok 17 - required process filter should filter data
expecting success of 0021.18 'required process filter should filter data for various subcommands':
test_config_global filter.protocol.process "test-tool rot13-filter --log=debug.log clean smudge" &&
test_config_global filter.protocol.required true &&
(
cd repo &&
S=$(test_file_size test.r) &&
S2=$(test_file_size test2.r) &&
S3=$(test_file_size "testsubdir/test3 'sq',\$x=.r") &&
M=$(git hash-object test.r) &&
M2=$(git hash-object test2.r) &&
M3=$(git hash-object "testsubdir/test3 'sq',\$x=.r") &&
EMPTY=$(git hash-object /dev/null) &&
MAIN=$(git rev-parse --verify main) &&
cp "$TEST_ROOT/test.o" test5.r &&
git add test5.r &&
git commit -m "test commit 3" &&
git checkout empty-branch &&
filter_git rebase --onto empty-branch main^^ main &&
MAIN2=$(git rev-parse --verify main) &&
META="ref=refs/heads/main treeish=$MAIN2" &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: smudge test.r $META blob=$M $S [OK] -- OUT: $S . [OK]
IN: smudge test2.r $META blob=$M2 $S2 [OK] -- OUT: $S2 . [OK]
IN: smudge test4-empty.r $META blob=$EMPTY 0 [OK] -- OUT: 0 [OK]
IN: smudge test5.r $META blob=$M $S [OK] -- OUT: $S . [OK]
IN: smudge testsubdir/test3 'sq',\$x=.r $META blob=$M3 $S3 [OK] -- OUT: $S3 . [OK]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log &&
git reset --hard empty-branch &&
filter_git reset --hard $MAIN &&
META="treeish=$MAIN" &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: smudge test.r $META blob=$M $S [OK] -- OUT: $S . [OK]
IN: smudge test2.r $META blob=$M2 $S2 [OK] -- OUT: $S2 . [OK]
IN: smudge test4-empty.r $META blob=$EMPTY 0 [OK] -- OUT: 0 [OK]
IN: smudge testsubdir/test3 'sq',\$x=.r $META blob=$M3 $S3 [OK] -- OUT: $S3 . [OK]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log &&
git branch old-main $MAIN &&
git reset --hard empty-branch &&
filter_git reset --hard old-main &&
META="ref=refs/heads/old-main treeish=$MAIN" &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: smudge test.r $META blob=$M $S [OK] -- OUT: $S . [OK]
IN: smudge test2.r $META blob=$M2 $S2 [OK] -- OUT: $S2 . [OK]
IN: smudge test4-empty.r $META blob=$EMPTY 0 [OK] -- OUT: 0 [OK]
IN: smudge testsubdir/test3 'sq',\$x=.r $META blob=$M3 $S3 [OK] -- OUT: $S3 . [OK]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log &&
git checkout -b merge empty-branch &&
git branch -f main $MAIN2 &&
filter_git merge main &&
META="treeish=$MAIN2" &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: smudge test.r $META blob=$M $S [OK] -- OUT: $S . [OK]
IN: smudge test2.r $META blob=$M2 $S2 [OK] -- OUT: $S2 . [OK]
IN: smudge test4-empty.r $META blob=$EMPTY 0 [OK] -- OUT: 0 [OK]
IN: smudge test5.r $META blob=$M $S [OK] -- OUT: $S . [OK]
IN: smudge testsubdir/test3 'sq',\$x=.r $META blob=$M3 $S3 [OK] -- OUT: $S3 . [OK]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log &&
filter_git archive main >/dev/null &&
META="ref=refs/heads/main treeish=$MAIN2" &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: smudge test.r $META blob=$M $S [OK] -- OUT: $S . [OK]
IN: smudge test2.r $META blob=$M2 $S2 [OK] -- OUT: $S2 . [OK]
IN: smudge test4-empty.r $META blob=$EMPTY 0 [OK] -- OUT: 0 [OK]
IN: smudge test5.r $META blob=$M $S [OK] -- OUT: $S . [OK]
IN: smudge testsubdir/test3 'sq',\$x=.r $META blob=$M3 $S3 [OK] -- OUT: $S3 . [OK]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log &&
TREE="$(git rev-parse $MAIN2^{tree})" &&
filter_git archive $TREE >/dev/null &&
META="treeish=$TREE" &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: smudge test.r $META blob=$M $S [OK] -- OUT: $S . [OK]
IN: smudge test2.r $META blob=$M2 $S2 [OK] -- OUT: $S2 . [OK]
IN: smudge test4-empty.r $META blob=$EMPTY 0 [OK] -- OUT: 0 [OK]
IN: smudge test5.r $META blob=$M $S [OK] -- OUT: $S . [OK]
IN: smudge testsubdir/test3 'sq',\$x=.r $META blob=$M3 $S3 [OK] -- OUT: $S3 . [OK]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log
)
[main 07631f7] test commit 3
Author: A U Thor <author@example.com>
1 file changed, 3 insertions(+)
create mode 100644 test5.r
Switched to branch 'empty-branch'
Current branch main is up to date.
HEAD is now at 56d459b test commit 1
HEAD is now at 9ea74df test commit 2
HEAD is now at 56d459b test commit 1
HEAD is now at 9ea74df test commit 2
Switched to a new branch 'merge'
Updating 56d459b..07631f7
Fast-forward
test.r | 3 +++
test2.r | 1 +
test4-empty.r | 0
test5.r | 3 +++
testsubdir/test3 'sq',$x=.r | 1 +
5 files changed, 8 insertions(+)
create mode 100644 test.r
create mode 100644 test2.r
create mode 100644 test4-empty.r
create mode 100644 test5.r
create mode 100644 testsubdir/test3 'sq',$x=.r
ok 18 - required process filter should filter data for various subcommands
expecting success of 0021.19 'required process filter takes precedence':
test_config_global filter.protocol.clean false &&
test_config_global filter.protocol.process "test-tool rot13-filter --log=debug.log clean" &&
test_config_global filter.protocol.required true &&
rm -rf repo &&
mkdir repo &&
(
cd repo &&
git init &&
echo "*.r filter=protocol" >.gitattributes &&
cp "$TEST_ROOT/test.o" test.r &&
S=$(test_file_size test.r) &&
# Check that the process filter is invoked here
filter_git add . &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: clean test.r $S [OK] -- OUT: $S . [OK]
STOP
EOF
test_cmp_count expected.log debug.log
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
ok 19 - required process filter takes precedence
expecting success of 0021.20 'required process filter should be used only for "clean" operation only':
test_config_global filter.protocol.process "test-tool rot13-filter --log=debug.log clean" &&
rm -rf repo &&
mkdir repo &&
(
cd repo &&
git init &&
echo "*.r filter=protocol" >.gitattributes &&
cp "$TEST_ROOT/test.o" test.r &&
S=$(test_file_size test.r) &&
filter_git add . &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: clean test.r $S [OK] -- OUT: $S . [OK]
STOP
EOF
test_cmp_count expected.log debug.log &&
rm test.r &&
filter_git checkout --quiet --no-progress . &&
# If the filter would be used for "smudge", too, we would see
# "IN: smudge test.r 57 [OK] -- OUT: 57 . [OK]" here
cat >expected.log <<-EOF &&
START
init handshake complete
STOP
EOF
test_cmp_exclude_clean expected.log debug.log
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
ok 20 - required process filter should be used only for "clean" operation only
expecting success of 0021.21 'required process filter should process multiple packets':
test_config_global filter.protocol.process "test-tool rot13-filter --log=debug.log clean smudge" &&
test_config_global filter.protocol.required true &&
rm -rf repo &&
mkdir repo &&
(
cd repo &&
git init &&
# Generate data requiring 1, 2, 3 packets
S=65516 && # PKTLINE_DATA_MAXLEN -> Maximal size of a packet
generate_random_characters $(($S )) 1pkt_1__.file &&
generate_random_characters $(($S +1)) 2pkt_1+1.file &&
generate_random_characters $(($S*2-1)) 2pkt_2-1.file &&
generate_random_characters $(($S*2 )) 2pkt_2__.file &&
generate_random_characters $(($S*2+1)) 3pkt_2+1.file &&
for FILE in "$TEST_ROOT"/*.file
do
cp "$FILE" . &&
rot13.sh <"$FILE" >"$FILE.rot13" || return 1
done &&
echo "*.file filter=protocol" >.gitattributes &&
filter_git add *.file .gitattributes &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: clean 1pkt_1__.file $(($S )) [OK] -- OUT: $(($S )) . [OK]
IN: clean 2pkt_1+1.file $(($S +1)) [OK] -- OUT: $(($S +1)) .. [OK]
IN: clean 2pkt_2-1.file $(($S*2-1)) [OK] -- OUT: $(($S*2-1)) .. [OK]
IN: clean 2pkt_2__.file $(($S*2 )) [OK] -- OUT: $(($S*2 )) .. [OK]
IN: clean 3pkt_2+1.file $(($S*2+1)) [OK] -- OUT: $(($S*2+1)) ... [OK]
STOP
EOF
test_cmp_count expected.log debug.log &&
M1="blob=$(git hash-object 1pkt_1__.file)" &&
M2="blob=$(git hash-object 2pkt_1+1.file)" &&
M3="blob=$(git hash-object 2pkt_2-1.file)" &&
M4="blob=$(git hash-object 2pkt_2__.file)" &&
M5="blob=$(git hash-object 3pkt_2+1.file)" &&
rm -f *.file debug.log &&
filter_git checkout --quiet --no-progress -- *.file &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: smudge 1pkt_1__.file $M1 $(($S )) [OK] -- OUT: $(($S )) . [OK]
IN: smudge 2pkt_1+1.file $M2 $(($S +1)) [OK] -- OUT: $(($S +1)) .. [OK]
IN: smudge 2pkt_2-1.file $M3 $(($S*2-1)) [OK] -- OUT: $(($S*2-1)) .. [OK]
IN: smudge 2pkt_2__.file $M4 $(($S*2 )) [OK] -- OUT: $(($S*2 )) .. [OK]
IN: smudge 3pkt_2+1.file $M5 $(($S*2+1)) [OK] -- OUT: $(($S*2+1)) ... [OK]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log &&
for FILE in *.file
do
test_cmp_committed_rot13 "$TEST_ROOT/$FILE" $FILE || return 1
done
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
ok 21 - required process filter should process multiple packets
expecting success of 0021.22 'required process filter with clean error should fail':
test_config_global filter.protocol.process "test-tool rot13-filter --log=debug.log clean smudge" &&
test_config_global filter.protocol.required true &&
rm -rf repo &&
mkdir repo &&
(
cd repo &&
git init &&
echo "*.r filter=protocol" >.gitattributes &&
cp "$TEST_ROOT/test.o" test.r &&
echo "this is going to fail" >clean-write-fail.r &&
echo "content-test3-subdir" >test3.r &&
test_must_fail git add .
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
fatal: clean write error
error: external filter 'test-tool rot13-filter --log=debug.log clean smudge' failed
fatal: clean-write-fail.r: clean filter 'protocol' failed
ok 22 - required process filter with clean error should fail
expecting success of 0021.23 'process filter should restart after unexpected write failure':
test_config_global filter.protocol.process "test-tool rot13-filter --log=debug.log clean smudge" &&
rm -rf repo &&
mkdir repo &&
(
cd repo &&
git init &&
echo "*.r filter=protocol" >.gitattributes &&
cp "$TEST_ROOT/test.o" test.r &&
cp "$TEST_ROOT/test2.o" test2.r &&
echo "this is going to fail" >smudge-write-fail.o &&
cp smudge-write-fail.o smudge-write-fail.r &&
S=$(test_file_size test.r) &&
S2=$(test_file_size test2.r) &&
SF=$(test_file_size smudge-write-fail.r) &&
M=$(git hash-object test.r) &&
M2=$(git hash-object test2.r) &&
MF=$(git hash-object smudge-write-fail.r) &&
rm -f debug.log &&
git add . &&
rm -f *.r &&
rm -f debug.log &&
git checkout --quiet --no-progress . 2>git-stderr.log &&
grep "smudge write error" git-stderr.log &&
test_i18ngrep "error: external filter" git-stderr.log &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: smudge smudge-write-fail.r blob=$MF $SF [OK] -- [WRITE FAIL]
START
init handshake complete
IN: smudge test.r blob=$M $S [OK] -- OUT: $S . [OK]
IN: smudge test2.r blob=$M2 $S2 [OK] -- OUT: $S2 . [OK]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test.r &&
test_cmp_committed_rot13 "$TEST_ROOT/test2.o" test2.r &&
# Smudge failed
! test_cmp smudge-write-fail.o smudge-write-fail.r &&
rot13.sh <smudge-write-fail.o >expected &&
git cat-file blob :smudge-write-fail.r >actual &&
test_cmp expected actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
fatal: smudge write error
error: external filter 'test-tool rot13-filter --log=debug.log clean smudge' failed
--- smudge-write-fail.o 2023-09-16 19:10:20.855044613 +0000
+++ smudge-write-fail.r 2023-09-16 19:10:20.951045808 +0000
@@ -1 +1 @@
-this is going to fail
+guvf vf tbvat gb snvy
ok 23 - process filter should restart after unexpected write failure
expecting success of 0021.24 'process filter should not be restarted if it signals an error':
test_config_global filter.protocol.process "test-tool rot13-filter --log=debug.log clean smudge" &&
rm -rf repo &&
mkdir repo &&
(
cd repo &&
git init &&
echo "*.r filter=protocol" >.gitattributes &&
cp "$TEST_ROOT/test.o" test.r &&
cp "$TEST_ROOT/test2.o" test2.r &&
echo "this will cause an error" >error.o &&
cp error.o error.r &&
S=$(test_file_size test.r) &&
S2=$(test_file_size test2.r) &&
SE=$(test_file_size error.r) &&
M=$(git hash-object test.r) &&
M2=$(git hash-object test2.r) &&
ME=$(git hash-object error.r) &&
rm -f debug.log &&
git add . &&
rm -f *.r &&
filter_git checkout --quiet --no-progress . &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: smudge error.r blob=$ME $SE [OK] -- [ERROR]
IN: smudge test.r blob=$M $S [OK] -- OUT: $S . [OK]
IN: smudge test2.r blob=$M2 $S2 [OK] -- OUT: $S2 . [OK]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test.r &&
test_cmp_committed_rot13 "$TEST_ROOT/test2.o" test2.r &&
test_cmp error.o error.r
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
ok 24 - process filter should not be restarted if it signals an error
expecting success of 0021.25 'process filter abort stops processing of all further files':
test_config_global filter.protocol.process "test-tool rot13-filter --log=debug.log clean smudge" &&
rm -rf repo &&
mkdir repo &&
(
cd repo &&
git init &&
echo "*.r filter=protocol" >.gitattributes &&
cp "$TEST_ROOT/test.o" test.r &&
cp "$TEST_ROOT/test2.o" test2.r &&
echo "error this blob and all future blobs" >abort.o &&
cp abort.o abort.r &&
M="blob=$(git hash-object abort.r)" &&
rm -f debug.log &&
SA=$(test_file_size abort.r) &&
git add . &&
rm -f *.r &&
# Note: This test assumes that Git filters files in alphabetical
# order ("abort.r" before "test.r").
filter_git checkout --quiet --no-progress . &&
cat >expected.log <<-EOF &&
START
init handshake complete
IN: smudge abort.r $M $SA [OK] -- [ABORT]
STOP
EOF
test_cmp_exclude_clean expected.log debug.log &&
test_cmp "$TEST_ROOT/test.o" test.r &&
test_cmp "$TEST_ROOT/test2.o" test2.r &&
test_cmp abort.o abort.r
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
ok 25 - process filter abort stops processing of all further files
expecting success of 0021.26 'invalid process filter must fail (and not hang!)':
test_config_global filter.protocol.process cat &&
test_config_global filter.protocol.required true &&
rm -rf repo &&
mkdir repo &&
(
cd repo &&
git init &&
echo "*.r filter=protocol" >.gitattributes &&
cp "$TEST_ROOT/test.o" test.r &&
test_must_fail git add . 2>git-stderr.log &&
grep "expected git-filter-server" git-stderr.log
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
error: Unexpected line 'git-filter-client', expected git-filter-server
ok 26 - invalid process filter must fail (and not hang!)
expecting success of 0021.27 'delayed checkout in process filter':
test_config_global filter.a.process "test-tool rot13-filter --log=a.log clean smudge delay" &&
test_config_global filter.a.required true &&
test_config_global filter.b.process "test-tool rot13-filter --log=b.log clean smudge delay" &&
test_config_global filter.b.required true &&
rm -rf repo &&
mkdir repo &&
(
cd repo &&
git init &&
echo "*.a filter=a" >.gitattributes &&
echo "*.b filter=b" >>.gitattributes &&
cp "$TEST_ROOT/test.o" test.a &&
cp "$TEST_ROOT/test.o" test-delay10.a &&
cp "$TEST_ROOT/test.o" test-delay11.a &&
cp "$TEST_ROOT/test.o" test-delay20.a &&
cp "$TEST_ROOT/test.o" test-delay10.b &&
git add . &&
git commit -m "test commit"
) &&
S=$(test_file_size "$TEST_ROOT/test.o") &&
PM="ref=refs/heads/main treeish=$(git -C repo rev-parse --verify main) " &&
M="${PM}blob=$(git -C repo rev-parse --verify main:test.a)" &&
cat >a.exp <<-EOF &&
START
init handshake complete
IN: smudge test.a $M $S [OK] -- OUT: $S . [OK]
IN: smudge test-delay10.a $M $S [OK] -- [DELAYED]
IN: smudge test-delay11.a $M $S [OK] -- [DELAYED]
IN: smudge test-delay20.a $M $S [OK] -- [DELAYED]
IN: list_available_blobs test-delay10.a test-delay11.a [OK]
IN: smudge test-delay10.a $M 0 [OK] -- OUT: $S . [OK]
IN: smudge test-delay11.a $M 0 [OK] -- OUT: $S . [OK]
IN: list_available_blobs test-delay20.a [OK]
IN: smudge test-delay20.a $M 0 [OK] -- OUT: $S . [OK]
IN: list_available_blobs [OK]
STOP
EOF
cat >b.exp <<-EOF &&
START
init handshake complete
IN: smudge test-delay10.b $M $S [OK] -- [DELAYED]
IN: list_available_blobs test-delay10.b [OK]
IN: smudge test-delay10.b $M 0 [OK] -- OUT: $S . [OK]
IN: list_available_blobs [OK]
STOP
EOF
rm -rf repo-cloned &&
filter_git clone repo repo-cloned &&
test_cmp_count a.exp repo-cloned/a.log &&
test_cmp_count b.exp repo-cloned/b.log &&
(
cd repo-cloned &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test.a &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test-delay10.a &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test-delay11.a &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test-delay20.a &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test-delay10.b &&
rm *.a *.b &&
filter_git checkout . &&
# We are not checking out a ref here, so filter out ref metadata.
sed -e "s!$PM!!" ../a.exp >a.exp.filtered &&
sed -e "s!$PM!!" ../b.exp >b.exp.filtered &&
test_cmp_count a.exp.filtered a.log &&
test_cmp_count b.exp.filtered b.log &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test.a &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test-delay10.a &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test-delay11.a &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test-delay20.a &&
test_cmp_committed_rot13 "$TEST_ROOT/test.o" test-delay10.b
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
[main (root-commit) 27d7fe8] test commit
Author: A U Thor <author@example.com>
6 files changed, 17 insertions(+)
create mode 100644 .gitattributes
create mode 100644 test-delay10.a
create mode 100644 test-delay10.b
create mode 100644 test-delay11.a
create mode 100644 test-delay20.a
create mode 100644 test.a
Cloning into 'repo-cloned'...
done.
Updated 5 paths from the index
ok 27 - delayed checkout in process filter
expecting success of 0021.28 'missing file in delayed checkout':
test_config_global filter.bug.process "test-tool rot13-filter --log=bug.log clean smudge delay" &&
test_config_global filter.bug.required true &&
rm -rf repo &&
mkdir repo &&
(
cd repo &&
git init &&
echo "*.a filter=bug" >.gitattributes &&
cp "$TEST_ROOT/test.o" missing-delay.a &&
git add . &&
git commit -m "test commit"
) &&
rm -rf repo-cloned &&
test_must_fail git clone repo repo-cloned 2>git-stderr.log &&
grep "error: .missing-delay\.a. was not filtered properly" git-stderr.log
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
[main (root-commit) 5567259] test commit
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitattributes
create mode 100644 missing-delay.a
error: 'missing-delay.a' was not filtered properly
ok 28 - missing file in delayed checkout
expecting success of 0021.29 'invalid file in delayed checkout':
test_config_global filter.bug.process "test-tool rot13-filter --log=bug.log clean smudge delay" &&
test_config_global filter.bug.required true &&
rm -rf repo &&
mkdir repo &&
(
cd repo &&
git init &&
echo "*.a filter=bug" >.gitattributes &&
cp "$TEST_ROOT/test.o" invalid-delay.a &&
cp "$TEST_ROOT/test.o" unfiltered &&
git add . &&
git commit -m "test commit"
) &&
rm -rf repo-cloned &&
test_must_fail git clone repo repo-cloned 2>git-stderr.log &&
grep "error: external filter .* signaled that .unfiltered. is now available although it has not been delayed earlier" git-stderr.log
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
[main (root-commit) 636012f] test commit
Author: A U Thor <author@example.com>
3 files changed, 7 insertions(+)
create mode 100644 .gitattributes
create mode 100644 invalid-delay.a
create mode 100644 unfiltered
error: external filter 'test-tool rot13-filter --log=bug.log clean smudge delay' signaled that 'unfiltered' is now available although it has not been delayed earlier
ok 29 - invalid file in delayed checkout
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
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
ok 30 # skip delayed checkout with case-collision don't write to the wrong place (missing CASE_INSENSITIVE_FS of SYMLINKS,CASE_INSENSITIVE_FS)
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
ok 31 # skip delayed checkout with utf-8-collision don't write to the wrong place (missing UTF8_NFD_TO_NFC of SYMLINKS,UTF8_NFD_TO_NFC)
ok 32 # skip delayed checkout with submodule collision don't write to the wrong place (missing CASE_INSENSITIVE_FS of SYMLINKS,CASE_INSENSITIVE_FS)
expecting success of 0021.33 'setup for progress tests':
git init progress &&
(
cd progress &&
git config filter.delay.process "test-tool rot13-filter --log=delay-progress.log clean smudge delay" &&
git config filter.delay.required true &&
echo "*.a filter=delay" >.gitattributes &&
touch test-delay10.a &&
git add . &&
git commit -m files
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/progress/.git/
[main (root-commit) 36dc8bf] files
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+)
create mode 100644 .gitattributes
create mode 100644 test-delay10.a
ok 33 - setup for progress tests
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 0021.34 'delayed checkout shows progress by default on tty (pathspec checkout)':
test_delayed_checkout_progress test_terminal git checkout $opt
IN: smudge test-delay10.a blob=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 [OK] -- [DELAYED]
Filtering content: 100% (1/1)
Filtering content: 100% (1/1), 0 bytes | 0 bytes/s, done.
ok 34 - delayed checkout shows progress by default on tty (pathspec checkout)
expecting success of 0021.35 'delayed checkout ommits progress on non-tty (pathspec checkout)':
test_delayed_checkout_progress ! git checkout $opt
IN: smudge test-delay10.a blob=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 [OK] -- [DELAYED]
ok 35 - delayed checkout ommits progress on non-tty (pathspec checkout)
expecting success of 0021.36 'delayed checkout ommits progress with --quiet (pathspec checkout)':
test_delayed_checkout_progress ! test_terminal git checkout --quiet $opt
IN: smudge test-delay10.a blob=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 [OK] -- [DELAYED]
ok 36 - delayed checkout ommits progress with --quiet (pathspec checkout)
expecting success of 0021.37 'delayed checkout honors --[no]-progress (pathspec checkout)':
test_delayed_checkout_progress ! test_terminal git checkout --no-progress $opt &&
test_delayed_checkout_progress test_terminal git checkout --quiet --progress $opt
IN: smudge test-delay10.a blob=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 [OK] -- [DELAYED]
IN: smudge test-delay10.a blob=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 [OK] -- [DELAYED]
Filtering content: 100% (1/1)
Filtering content: 100% (1/1), 0 bytes | 0 bytes/s, done.
ok 37 - delayed checkout honors --[no]-progress (pathspec checkout)
expecting success of 0021.38 'delayed checkout shows progress by default on tty (branch checkout)':
test_delayed_checkout_progress test_terminal git checkout $opt
IN: smudge test-delay10.a ref=refs/heads/main treeish=36dc8bfae462bbc71de73591934e95020c6c26ce blob=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 [OK] -- [DELAYED]
Filtering content: 100% (1/1)
Filtering content: 100% (1/1), 0 bytes | 0 bytes/s, done.
ok 38 - delayed checkout shows progress by default on tty (branch checkout)
expecting success of 0021.39 'delayed checkout ommits progress on non-tty (branch checkout)':
test_delayed_checkout_progress ! git checkout $opt
IN: smudge test-delay10.a ref=refs/heads/main treeish=36dc8bfae462bbc71de73591934e95020c6c26ce blob=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 [OK] -- [DELAYED]
ok 39 - delayed checkout ommits progress on non-tty (branch checkout)
expecting success of 0021.40 'delayed checkout ommits progress with --quiet (branch checkout)':
test_delayed_checkout_progress ! test_terminal git checkout --quiet $opt
IN: smudge test-delay10.a ref=refs/heads/main treeish=36dc8bfae462bbc71de73591934e95020c6c26ce blob=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 [OK] -- [DELAYED]
ok 40 - delayed checkout ommits progress with --quiet (branch checkout)
expecting success of 0021.41 'delayed checkout honors --[no]-progress (branch checkout)':
test_delayed_checkout_progress ! test_terminal git checkout --no-progress $opt &&
test_delayed_checkout_progress test_terminal git checkout --quiet --progress $opt
IN: smudge test-delay10.a ref=refs/heads/main treeish=36dc8bfae462bbc71de73591934e95020c6c26ce blob=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 [OK] -- [DELAYED]
IN: smudge test-delay10.a ref=refs/heads/main treeish=36dc8bfae462bbc71de73591934e95020c6c26ce blob=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 [OK] -- [DELAYED]
Filtering content: 100% (1/1)
Filtering content: 100% (1/1), 0 bytes | 0 bytes/s, done.
ok 41 - delayed checkout honors --[no]-progress (branch checkout)
expecting success of 0021.42 'delayed checkout correctly reports the number of updated entries':
rm -rf repo &&
git init repo &&
(
cd repo &&
git config filter.delay.process "test-tool rot13-filter --log=delayed.log clean smudge delay" &&
git config filter.delay.required true &&
echo "*.a filter=delay" >.gitattributes &&
echo a >test-delay10.a &&
echo a >test-delay11.a &&
git add . &&
git commit -m files &&
rm *.a &&
git checkout . 2>err &&
grep "IN: smudge test-delay10.a .* \\[DELAYED\\]" delayed.log &&
grep "IN: smudge test-delay11.a .* \\[DELAYED\\]" delayed.log &&
grep "Updated 2 paths from the index" err
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0021-conversion/repo/.git/
[main (root-commit) 6d52fcb] files
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
create mode 100644 .gitattributes
create mode 100644 test-delay10.a
create mode 100644 test-delay11.a
IN: smudge test-delay10.a blob=8ba3a16384aacc37d01564b28401755ce8053f51 2 [OK] -- [DELAYED]
IN: smudge test-delay11.a blob=8ba3a16384aacc37d01564b28401755ce8053f51 2 [OK] -- [DELAYED]
Updated 2 paths from the index
ok 42 - delayed checkout correctly reports the number of updated entries
# passed all 42 test(s)
1..42
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0067-parse_pathspec_file.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0069-oidtree.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0069-oidtree/.git/
expecting success of 0069.1 'oidtree insert and contains':
cat >expect <<-\EOF &&
0
0
0
1
1
0
EOF
{
echoid insert 444 1 2 3 4 5 a b c d e &&
echoid contains 44 441 440 444 4440 4444 &&
echo clear
} | test-tool oidtree >actual &&
test_cmp expect actual
ok 1 - oidtree insert and contains
expecting success of 0069.2 'oidtree each':
echoid "" 123 321 321 >expect &&
{
echoid insert f 9 8 123 321 a b c d e &&
echo each 12300 &&
echo each 3211 &&
echo each 3210 &&
echo each 32100 &&
echo clear
} | test-tool oidtree >actual &&
test_cmp expect actual
ok 2 - oidtree each
# passed all 2 test(s)
1..2
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0068-for-each-repo.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 init ~/four &&
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 config --add run.key "~/four" &&
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 -C ~/four 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 &&
git -C ~/four log -1 --pretty=format:%s >message &&
grep again message
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0068-for-each-repo/one/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0068-for-each-repo/two/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0068-for-each-repo/three/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0068-for-each-repo/four/.git/
[master (root-commit) 20fd2df] DID NOT RUN
Author: A U Thor <author@example.com>
[master (root-commit) 3c2529d] ran
Author: A U Thor <author@example.com>
[master (root-commit) 3c2529d] ran
Author: A U Thor <author@example.com>
[master (root-commit) 3c2529d] ran
Author: A U Thor <author@example.com>
ran
ran
ran
[master 3fc5dd1] ran again
Author: A U Thor <author@example.com>
[master 3fc5dd1] ran again
Author: A U Thor <author@example.com>
[master 3fc5dd1] ran again
Author: A U Thor <author@example.com>
ran again
ran again
ran again
ok 1 - run based on configured value
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 2 - do nothing on empty config
# passed all 2 test(s)
1..2
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0070-fundamental.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t/trash directory.t0070-fundamental/doesnotexist/test7obNBA': 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 '/<<PKGBUILDDIR>>/t/trash directory.t0070-fundamental/cannotwrite/testGM1Xtn': 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 <author@example.com>
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 <split-sideband 2>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 <input 2>err &&
test_i18ngrep "unexpected disconnect" err
sideband: unexpected disconnect while reading sideband packet
ok 7 - eof on sideband message is reported
expecting success of 0070.8 'missing sideband designator is reported':
printf 0004 >input &&
test-tool pkt-line receive-sideband <input 2>err &&
test_i18ngrep "missing sideband" err
sideband: protocol error: missing sideband designator
ok 8 - missing sideband designator is reported
# passed all 8 test(s)
1..8
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0090-cache-tree.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <author@example.com>
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 &&
test_when_finished "rm before" &&
cat >before <<-\EOF &&
SHA (3 entries, 2 subtrees)
SHA dir1/ (1 entries, 0 subtrees)
SHA dir2/ (1 entries, 0 subtrees)
EOF
cmp_cache_tree before &&
echo "I changed this file" >dir1/a &&
git add dir1/a &&
cat >expect <<-\EOF &&
invalid (2 subtrees)
invalid dir1/ (0 subtrees)
SHA dir2/ (1 entries, 0 subtrees)
EOF
cmp_cache_tree expect
[master 365c8fc] dir1/a
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 dir1/a.t
[master 8be4607] dir2/b
Author: A U Thor <author@example.com>
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 <author@example.com>
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':
test_when_finished "git reset --hard" &&
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 &&
cat <<-\EOF >expected.status &&
M foo.c
EOF
test_cache_tree expected.status
[master d1075a6] add a file
Author: A U Thor <author@example.com>
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 <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
HEAD is now at 65d7dde foo
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 <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 deep/very-long-subdir/file
rm 'deep/very-long-subdir/file'
No changes.
[master 73c66c3] delete
Author: A U Thor <author@example.com>
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 <author@example.com>
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 clean -fd &&
git reset --hard &&
test_cache_tree
Removing bar.t
Removing dir/
Removing expected.status
Removing foo.c
Removing foo.t
Removing status
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 <new-branch-name>
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 <new-branch-name>
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 <new-branch-name>
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 <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 llamas.t
[changes f10d9f3] pachyderm
Author: A U Thor <author@example.com>
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 <new-branch-name>
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 <author@example.com>
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 <new-branch-name>
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 <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 struthio.t
Merge made by the 'ort' 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 &&
cat <<-\EOF >expected.status &&
M one.t
EOF
test_cache_tree expected.status
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 <new-branch-name> e104fa1
Switched to a new branch 'partial'
[partial 6771940] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
[partial cd7fad9] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 two.t
[partial f24c7c2] partial
Author: A U Thor <author@example.com>
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 <author@example.com>
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0091-bugreport.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <git-bugreport-check-headers.txt
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.40.1: 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 4.15.0-187-generic #198-Ubuntu SMP Tue Jun 14 03:26:40 UTC 2022 armv8l: No such file or directory
grep: compiler info: gnuc: 12.2: No such file or directory
grep: libc info: glibc: 2.36: No such file or directory
grep: $SHELL (typically, interactive shell): /bin/sh: 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 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
fatal: unable to create 'git-bugreport-duplicate.txt': File exists
ok 2 - dies if file with same name as report already exists
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-*
Created new report at 'foo/git-bugreport-2023-09-16-1910.txt'.
ok 3 - --output-directory puts the report in the provided 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-*
usage: git bugreport [(-o | --output-directory) <path>] [(-s | --suffix) <format>]
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-09-16-1910.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-09-16-1910.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_hook applypatch-msg <<-\EOF &&
true
EOF
test_hook unknown-hook <<-\EOF &&
true
EOF
git bugreport -s hooks &&
sort >expect <<-\EOF &&
[Enabled Hooks]
applypatch-msg
EOF
sed -ne "/^\[Enabled Hooks\]$/,/^$/p" <git-bugreport-hooks.txt >actual &&
test_cmp expect actual
Created new report at 'git-bugreport-hooks.txt'.
ok 7 - indicates populated hooks
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 12.2.0 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 0091.8 '--diagnose creates diagnostics zip archive':
test_when_finished rm -rf report &&
git bugreport --diagnose -o report -s test >out &&
zip_path=report/git-diagnostics-test.zip &&
grep "Available space" out &&
test_path_is_file "$zip_path" &&
# Check zipped archive content
"$GIT_UNZIP" -p "$zip_path" diagnostics.log >out &&
test_file_not_empty out &&
"$GIT_UNZIP" -p "$zip_path" packs-local.txt >out &&
grep ".git/objects" out &&
"$GIT_UNZIP" -p "$zip_path" objects-local.txt >out &&
grep "^Total: [0-9][0-9]*" out &&
# Should not include .git directory contents by default
! "$GIT_UNZIP" -l "$zip_path" | grep ".git/"
Diagnostics complete.
All of the gathered info is captured in 'report/git-diagnostics-test.zip'
Created new report at 'report/git-bugreport-test.txt'.
Available space on '/<<PKGBUILDDIR>>/t/trash directory.t0091-bugreport': 71.74 GiB (mount flags 0x1000)
Contents of .git/objects:
Total: 0 loose objects
ok 8 - --diagnose creates diagnostics zip archive
expecting success of 0091.9 '--diagnose=stats excludes .git dir contents':
test_when_finished rm -rf report &&
git bugreport --diagnose=stats -o report -s test >out &&
# Includes pack quantity/size info
"$GIT_UNZIP" -p "$zip_path" packs-local.txt >out &&
grep ".git/objects" out &&
# Does not include .git directory contents
! "$GIT_UNZIP" -l "$zip_path" | grep ".git/"
Diagnostics complete.
All of the gathered info is captured in 'report/git-diagnostics-test.zip'
Created new report at 'report/git-bugreport-test.txt'.
Contents of .git/objects:
ok 9 - --diagnose=stats excludes .git dir contents
expecting success of 0091.10 '--diagnose=all includes .git dir contents':
test_when_finished rm -rf report &&
git bugreport --diagnose=all -o report -s test >out &&
# Includes .git directory contents
"$GIT_UNZIP" -l "$zip_path" | grep ".git/" &&
"$GIT_UNZIP" -p "$zip_path" .git/HEAD >out &&
test_file_not_empty out
warning: could not archive missing directory '.git/logs'
Diagnostics complete.
All of the gathered info is captured in 'report/git-diagnostics-test.zip'
Created new report at 'report/git-bugreport-test.txt'.
73 2023-09-16 19:10 .git/description
23 2023-09-16 19:10 .git/HEAD
92 2023-09-16 19:10 .git/config
478 2023-09-16 19:10 .git/hooks/applypatch-msg.sample
896 2023-09-16 19:10 .git/hooks/commit-msg.sample
4726 2023-09-16 19:10 .git/hooks/fsmonitor-watchman.sample
189 2023-09-16 19:10 .git/hooks/post-update.sample
424 2023-09-16 19:10 .git/hooks/pre-applypatch.sample
1643 2023-09-16 19:10 .git/hooks/pre-commit.sample
416 2023-09-16 19:10 .git/hooks/pre-merge-commit.sample
1374 2023-09-16 19:10 .git/hooks/pre-push.sample
4898 2023-09-16 19:10 .git/hooks/pre-rebase.sample
544 2023-09-16 19:10 .git/hooks/pre-receive.sample
1492 2023-09-16 19:10 .git/hooks/prepare-commit-msg.sample
2783 2023-09-16 19:10 .git/hooks/push-to-checkout.sample
3650 2023-09-16 19:10 .git/hooks/update.sample
240 2023-09-16 19:10 .git/info/exclude
ok 10 - --diagnose=all includes .git dir contents
# passed all 10 test(s)
1..10
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0092-diagnose.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0092-diagnose/.git/
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 12.2.0 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 0092.1 'creates diagnostics zip archive':
test_when_finished rm -rf report &&
git diagnose -o report -s test >out &&
grep "Available space" out &&
zip_path=report/git-diagnostics-test.zip &&
test_path_is_file "$zip_path" &&
# Check zipped archive content
"$GIT_UNZIP" -p "$zip_path" diagnostics.log >out &&
test_file_not_empty out &&
"$GIT_UNZIP" -p "$zip_path" packs-local.txt >out &&
grep ".git/objects" out &&
"$GIT_UNZIP" -p "$zip_path" objects-local.txt >out &&
grep "^Total: [0-9][0-9]*" out &&
# Should not include .git directory contents by default
! "$GIT_UNZIP" -l "$zip_path" | grep ".git/"
Diagnostics complete.
All of the gathered info is captured in 'report/git-diagnostics-test.zip'
Available space on '/<<PKGBUILDDIR>>/t/trash directory.t0092-diagnose': 71.74 GiB (mount flags 0x1000)
Contents of .git/objects:
Total: 0 loose objects
ok 1 - creates diagnostics zip archive
expecting success of 0092.2 'counts loose objects':
test_commit A &&
# After committing, should have non-zero loose objects
git diagnose -o test-count -s 1 >out &&
zip_path=test-count/git-diagnostics-1.zip &&
"$GIT_UNZIP" -p "$zip_path" objects-local.txt >out &&
grep "^Total: [1-9][0-9]* loose objects" out
[master (root-commit) 0ddfaf1] A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A.t
Diagnostics complete.
All of the gathered info is captured in 'test-count/git-diagnostics-1.zip'
Total: 3 loose objects
ok 2 - counts loose objects
expecting success of 0092.3 '--mode=stats excludes .git dir contents':
test_when_finished rm -rf report &&
git diagnose -o report -s test --mode=stats >out &&
# Includes pack quantity/size info
zip_path=report/git-diagnostics-test.zip &&
"$GIT_UNZIP" -p "$zip_path" packs-local.txt >out &&
grep ".git/objects" out &&
# Does not include .git directory contents
! "$GIT_UNZIP" -l "$zip_path" | grep ".git/"
Diagnostics complete.
All of the gathered info is captured in 'report/git-diagnostics-test.zip'
Contents of .git/objects:
ok 3 - --mode=stats excludes .git dir contents
expecting success of 0092.4 '--mode=all includes .git dir contents':
test_when_finished rm -rf report &&
git diagnose -o report -s test --mode=all >out &&
# Includes pack quantity/size info
zip_path=report/git-diagnostics-test.zip &&
"$GIT_UNZIP" -p "$zip_path" packs-local.txt >out &&
grep ".git/objects" out &&
# Includes .git directory contents
"$GIT_UNZIP" -l "$zip_path" | grep ".git/" &&
"$GIT_UNZIP" -p "$zip_path" .git/HEAD >out &&
test_file_not_empty out
Diagnostics complete.
All of the gathered info is captured in 'report/git-diagnostics-test.zip'
Contents of .git/objects:
73 2023-09-16 19:10 .git/description
23 2023-09-16 19:10 .git/HEAD
92 2023-09-16 19:10 .git/config
137 2023-09-16 19:10 .git/index
2 2023-09-16 19:10 .git/COMMIT_EDITMSG
478 2023-09-16 19:10 .git/hooks/applypatch-msg.sample
896 2023-09-16 19:10 .git/hooks/commit-msg.sample
4726 2023-09-16 19:10 .git/hooks/fsmonitor-watchman.sample
189 2023-09-16 19:10 .git/hooks/post-update.sample
424 2023-09-16 19:10 .git/hooks/pre-applypatch.sample
1643 2023-09-16 19:10 .git/hooks/pre-commit.sample
416 2023-09-16 19:10 .git/hooks/pre-merge-commit.sample
1374 2023-09-16 19:10 .git/hooks/pre-push.sample
4898 2023-09-16 19:10 .git/hooks/pre-rebase.sample
544 2023-09-16 19:10 .git/hooks/pre-receive.sample
1492 2023-09-16 19:10 .git/hooks/prepare-commit-msg.sample
2783 2023-09-16 19:10 .git/hooks/push-to-checkout.sample
3650 2023-09-16 19:10 .git/hooks/update.sample
240 2023-09-16 19:10 .git/info/exclude
154 2023-09-16 19:10 .git/logs/HEAD
154 2023-09-16 19:10 .git/logs/refs/heads/master
ok 4 - --mode=all includes .git dir contents
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0095-bloom.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 /<<PKGBUILDDIR>>/t/trash directory.t0095-bloom/.git/
[master (root-commit) c7bd1a3] c0
Author: A U Thor <author@example.com>
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 || return 1
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 <author@example.com>
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0100-previous.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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/main &&
git branch -d @{-1} &&
test_must_fail git rev-parse --verify refs/heads/junk
[main (root-commit) 0ddfaf1] A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A.t
Switched to a new branch 'junk'
Switched to branch 'main'
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/main &&
test_must_fail git branch -d @{-12} &&
git rev-parse --verify refs/heads/main
Switched to a new branch 'junk2'
Switched to branch 'main'
error: branch '@{-12}' not found.
0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050
ok 2 - branch -d @{-12} when there is not enough switches yet
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 main B &&
git branch -f other &&
git checkout other &&
git checkout main &&
git merge @{-1} &&
git cat-file commit HEAD | grep "Merge branch 'other'"
Note: switching to 'A'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 0ddfaf1 A
[detached HEAD d9df450] B
Author: A U Thor <author@example.com>
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 <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 C.t
[detached HEAD 12bd07b] D
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 D.t
Switched to branch 'other'
Switched to branch 'main'
Merge made by the 'ort' 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}
expecting success of 0100.4 'merge @{-1}~1':
git checkout main &&
git reset --hard B &&
git checkout other &&
git checkout main &&
git merge @{-1}~1 &&
git cat-file commit HEAD >actual &&
grep "Merge branch 'other'" actual
Already on 'main'
HEAD is now at d9df450 B
Switched to branch 'other'
Switched to branch 'main'
Merge made by the 'ort' strategy.
C.t | 1 +
1 file changed, 1 insertion(+)
create mode 100644 C.t
Merge branch 'other' (early part)
ok 4 - merge @{-1}~1
expecting success of 0100.5 'merge @{-100} before checking out that many branches yet':
git reflog expire --expire=now &&
git checkout -f main &&
git reset --hard B &&
git branch -f other C &&
git checkout other &&
git checkout main &&
test_must_fail git merge @{-100}
Already on 'main'
HEAD is now at d9df450 B
Switched to branch 'other'
Switched to branch 'main'
merge: @{-100} - not something we can merge
ok 5 - merge @{-100} before checking out that many branches yet
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
Switched to a new branch 'last_branch'
Switched to a new branch 'new_branch'
ok 6 - log -g @{-1}
# passed all 6 test(s)
1..6
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0101-at-syntax.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0101-at-syntax/.git/
expecting success of 0101.1 'setup':
test_commit one &&
test_commit two
[master (root-commit) d79ce16] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
[master 139b20d] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 two.t
ok 1 - setup
expecting success of 0101.2 '@{0} shows current':
check_at @{0} two
ok 2 - @{0} shows current
expecting success of 0101.3 '@{1} shows old':
check_at @{1} one
ok 3 - @{1} shows old
expecting success of 0101.4 '@{now} shows current':
check_at @{now} two
ok 4 - @{now} shows current
expecting success of 0101.5 '@{2001-09-17} (before the first commit) shows old':
check_at @{2001-09-17} one
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
expecting success of 0101.6 'silly approxidates work':
check_at @{3.hot.dogs.on.2001-09-17} one
warning: log for 'master' only goes back to Thu, 7 Apr 2005 15:13:13 -0700
ok 6 - silly approxidates work
expecting success of 0101.7 'notice misspelled upstream':
test_must_fail git log -1 --format=%s @{usptream}
fatal: ambiguous argument '@{usptream}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
ok 7 - notice misspelled upstream
expecting success of 0101.8 'complain about total nonsense':
test_must_fail git log -1 --format=%s @{utter.bogosity}
fatal: ambiguous argument '@{utter.bogosity}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
ok 8 - complain about total nonsense
# passed all 8 test(s)
1..8
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0052-simple-ipc.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0052-simple-ipc/.git/
expecting success of 0052.1 'start simple command server':
test_atexit stop_simple_IPC_server &&
test-tool simple-ipc start-daemon --threads=8 &&
test-tool simple-ipc is-active
ok 1 - start simple command server
expecting success of 0052.2 'simple command server':
test-tool simple-ipc send --token=ping >actual &&
echo pong >expect &&
test_cmp expect actual
ok 2 - simple command server
expecting success of 0052.3 'servers cannot share the same path':
test_must_fail test-tool simple-ipc run-daemon &&
test-tool simple-ipc is-active
error: socket/pipe already in use: 'ipc-test'
ok 3 - servers cannot share the same path
expecting success of 0052.4 'big response':
test-tool simple-ipc send --token=big >actual &&
test_line_count -ge 10000 actual &&
grep -q "big: [0]*9999\$" actual
ok 4 - big response
expecting success of 0052.5 'chunk response':
test-tool simple-ipc send --token=chunk >actual &&
test_line_count -ge 10000 actual &&
grep -q "big: [0]*9999\$" actual
ok 5 - chunk response
expecting success of 0052.6 'slow response':
test-tool simple-ipc send --token=slow >actual &&
test_line_count -ge 100 actual &&
grep -q "big: [0]*99\$" actual
ok 6 - slow response
expecting success of 0052.7 'sendbytes':
test-tool simple-ipc sendbytes --bytecount=100000 --byte=A >actual &&
grep "sent:A00100000 rcvd:A00100000" actual
sent:A00100000 rcvd:A00100000
ok 7 - sendbytes
expecting success of 0052.8 'stress test threads':
test-tool simple-ipc multiple \
--threads=7 \
--bytecount=19 \
--batchsize=13 \
>actual &&
test_line_count = 92 actual &&
grep "good 91" actual &&
grep "sent:A" <actual >actual_a &&
cat >expect_a <<-EOF &&
sent:A00000019 rcvd:A00000019
sent:A00000020 rcvd:A00000020
sent:A00000021 rcvd:A00000021
sent:A00000022 rcvd:A00000022
sent:A00000023 rcvd:A00000023
sent:A00000024 rcvd:A00000024
sent:A00000025 rcvd:A00000025
sent:A00000026 rcvd:A00000026
sent:A00000027 rcvd:A00000027
sent:A00000028 rcvd:A00000028
sent:A00000029 rcvd:A00000029
sent:A00000030 rcvd:A00000030
sent:A00000031 rcvd:A00000031
EOF
test_cmp expect_a actual_a
client (good 91) (join 0), (errors 0)
ok 8 - stress test threads
expecting success of 0052.9 'stop-daemon works':
test-tool simple-ipc stop-daemon &&
test_must_fail test-tool simple-ipc is-active &&
test_must_fail test-tool simple-ipc send --token=ping
error: no server listening at 'ipc-test'
error: no server listening at 'ipc-test'
ok 9 - stop-daemon works
error: no server listening at 'ipc-test'
# passed all 9 test(s)
1..9
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0200-gettext-basic.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0200-gettext-basic/.git/
# lib-gettext: No is_IS UTF-8 locale available
# 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
ok 8 # skip sanity: gettext("") metadata is OK (missing GETTEXT_LOCALE)
ok 9 # skip sanity: gettext(unknown) is passed through (missing GETTEXT_LOCALE)
ok 10 # skip xgettext: C extraction of _() and N_() strings (missing GETTEXT_LOCALE)
ok 11 # skip xgettext: C extraction with %s (missing GETTEXT_LOCALE)
ok 12 # skip xgettext: Shell extraction (missing GETTEXT_LOCALE)
ok 13 # skip xgettext: Shell extraction with $variable (missing GETTEXT_LOCALE)
ok 14 # skip xgettext: Perl extraction (missing GETTEXT_LOCALE)
ok 15 # skip xgettext: Perl extraction with %s (missing GETTEXT_LOCALE)
ok 16 # skip sanity: Some gettext("") data for real locale (missing GETTEXT_LOCALE)
# passed all 16 test(s)
1..16
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0071-sort.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0071-sort/.git/
expecting success of 0071.1 'DEFINE_LIST_SORT_DEBUG':
test-tool mergesort test
distribut mode n m get_next set_next compare verdict
sawtooth copy 100 1 472 198 372 OK
sawtooth copy 100 2 605 296 505 OK
sawtooth copy 100 4 634 342 534 OK
sawtooth copy 100 8 604 359 504 OK
sawtooth copy 100 16 561 355 461 OK
sawtooth copy 100 32 514 329 414 OK
sawtooth copy 100 64 480 269 380 OK
sawtooth copy 100 128 472 198 372 OK
sawtooth reverse 100 1 472 198 372 OK
sawtooth reverse 100 2 605 296 505 OK
sawtooth reverse 100 4 634 342 534 OK
sawtooth reverse 100 8 604 359 504 OK
sawtooth reverse 100 16 585 361 485 OK
sawtooth reverse 100 32 538 335 438 OK
sawtooth reverse 100 64 464 272 364 OK
sawtooth reverse 100 128 416 198 316 OK
sawtooth reverse_1st_half 100 1 472 198 372 OK
sawtooth reverse_1st_half 100 2 605 296 505 OK
sawtooth reverse_1st_half 100 4 634 342 534 OK
sawtooth reverse_1st_half 100 8 616 365 516 OK
sawtooth reverse_1st_half 100 16 573 361 473 OK
sawtooth reverse_1st_half 100 32 522 333 422 OK
sawtooth reverse_1st_half 100 64 500 271 400 OK
sawtooth reverse_1st_half 100 128 492 200 392 OK
sawtooth reverse_2nd_half 100 1 472 198 372 OK
sawtooth reverse_2nd_half 100 2 605 296 505 OK
sawtooth reverse_2nd_half 100 4 634 342 534 OK
sawtooth reverse_2nd_half 100 8 624 364 524 OK
sawtooth reverse_2nd_half 100 16 589 360 489 OK
sawtooth reverse_2nd_half 100 32 558 334 458 OK
sawtooth reverse_2nd_half 100 64 525 273 425 OK
sawtooth reverse_2nd_half 100 128 470 201 370 OK
sawtooth sort 100 1 472 198 372 OK
sawtooth sort 100 2 472 198 372 OK
sawtooth sort 100 4 472 198 372 OK
sawtooth sort 100 8 472 198 372 OK
sawtooth sort 100 16 472 198 372 OK
sawtooth sort 100 32 472 198 372 OK
sawtooth sort 100 64 472 198 372 OK
sawtooth sort 100 128 472 198 372 OK
sawtooth dither 100 1 652 374 552 OK
sawtooth dither 100 2 663 367 563 OK
sawtooth dither 100 4 672 421 572 OK
sawtooth dither 100 8 642 418 542 OK
sawtooth dither 100 16 594 416 494 OK
sawtooth dither 100 32 547 389 447 OK
sawtooth dither 100 64 514 333 414 OK
sawtooth dither 100 128 505 264 405 OK
sawtooth unriffle 100 1 472 198 372 OK
sawtooth unriffle 100 2 472 198 372 OK
sawtooth unriffle 100 4 519 205 419 OK
sawtooth unriffle 100 8 570 221 470 OK
sawtooth unriffle 100 16 585 261 485 OK
sawtooth unriffle 100 32 630 322 530 OK
sawtooth unriffle 100 64 658 418 558 OK
sawtooth unriffle 100 128 672 520 572 OK
sawtooth unriffle_skewed 100 1 472 198 372 OK
sawtooth unriffle_skewed 100 2 509 226 409 OK
sawtooth unriffle_skewed 100 4 539 246 439 OK
sawtooth unriffle_skewed 100 8 609 268 509 OK
sawtooth unriffle_skewed 100 16 627 301 527 OK
sawtooth unriffle_skewed 100 32 631 369 531 OK
sawtooth unriffle_skewed 100 64 674 533 574 OK
sawtooth unriffle_skewed 100 128 689 632 589 OK
rand copy 100 1 472 198 372 OK
rand copy 100 2 581 264 481 OK
rand copy 100 4 627 315 527 OK
rand copy 100 8 647 351 547 OK
rand copy 100 16 640 381 540 OK
rand copy 100 32 648 398 548 OK
rand copy 100 64 641 403 541 OK
rand copy 100 128 649 422 549 OK
rand reverse 100 1 472 198 372 OK
rand reverse 100 2 568 266 468 OK
rand reverse 100 4 623 312 523 OK
rand reverse 100 8 649 349 549 OK
rand reverse 100 16 651 376 551 OK
rand reverse 100 32 654 399 554 OK
rand reverse 100 64 659 415 559 OK
rand reverse 100 128 661 421 561 OK
rand reverse_1st_half 100 1 472 198 372 OK
rand reverse_1st_half 100 2 576 266 476 OK
rand reverse_1st_half 100 4 623 320 523 OK
rand reverse_1st_half 100 8 646 357 546 OK
rand reverse_1st_half 100 16 639 390 539 OK
rand reverse_1st_half 100 32 652 423 552 OK
rand reverse_1st_half 100 64 644 422 544 OK
rand reverse_1st_half 100 128 649 418 549 OK
rand reverse_2nd_half 100 1 472 198 372 OK
rand reverse_2nd_half 100 2 581 264 481 OK
rand reverse_2nd_half 100 4 631 320 531 OK
rand reverse_2nd_half 100 8 643 364 543 OK
rand reverse_2nd_half 100 16 651 390 551 OK
rand reverse_2nd_half 100 32 652 402 552 OK
rand reverse_2nd_half 100 64 647 416 547 OK
rand reverse_2nd_half 100 128 660 434 560 OK
rand sort 100 1 472 198 372 OK
rand sort 100 2 472 198 372 OK
rand sort 100 4 472 198 372 OK
rand sort 100 8 472 198 372 OK
rand sort 100 16 472 198 372 OK
rand sort 100 32 472 198 372 OK
rand sort 100 64 472 198 372 OK
rand sort 100 128 472 198 372 OK
rand dither 100 1 652 374 552 OK
rand dither 100 2 658 338 558 OK
rand dither 100 4 653 347 553 OK
rand dither 100 8 649 359 549 OK
rand dither 100 16 643 398 543 OK
rand dither 100 32 653 397 553 OK
rand dither 100 64 641 395 541 OK
rand dither 100 128 651 425 551 OK
rand unriffle 100 1 472 198 372 OK
rand unriffle 100 2 578 264 478 OK
rand unriffle 100 4 621 320 521 OK
rand unriffle 100 8 649 371 549 OK
rand unriffle 100 16 664 403 564 OK
rand unriffle 100 32 656 419 556 OK
rand unriffle 100 64 656 441 556 OK
rand unriffle 100 128 665 450 565 OK
rand unriffle_skewed 100 1 472 198 372 OK
rand unriffle_skewed 100 2 581 268 481 OK
rand unriffle_skewed 100 4 625 312 525 OK
rand unriffle_skewed 100 8 648 356 548 OK
rand unriffle_skewed 100 16 660 398 560 OK
rand unriffle_skewed 100 32 654 417 554 OK
rand unriffle_skewed 100 64 667 435 567 OK
rand unriffle_skewed 100 128 662 431 562 OK
stagger copy 100 1 543 299 443 OK
stagger copy 100 2 582 335 482 OK
stagger copy 100 4 586 354 486 OK
stagger copy 100 8 627 368 527 OK
stagger copy 100 16 653 458 553 OK
stagger copy 100 32 618 315 518 OK
stagger copy 100 64 673 480 573 OK
stagger copy 100 128 666 501 566 OK
stagger reverse 100 1 489 299 389 OK
stagger reverse 100 2 522 335 422 OK
stagger reverse 100 4 562 350 462 OK
stagger reverse 100 8 613 366 513 OK
stagger reverse 100 16 643 457 543 OK
stagger reverse 100 32 633 312 533 OK
stagger reverse 100 64 680 496 580 OK
stagger reverse 100 128 669 498 569 OK
stagger reverse_1st_half 100 1 520 294 420 OK
stagger reverse_1st_half 100 2 561 331 461 OK
stagger reverse_1st_half 100 4 596 353 496 OK
stagger reverse_1st_half 100 8 630 368 530 OK
stagger reverse_1st_half 100 16 652 451 552 OK
stagger reverse_1st_half 100 32 622 314 522 OK
stagger reverse_1st_half 100 64 670 480 570 OK
stagger reverse_1st_half 100 128 668 490 568 OK
stagger reverse_2nd_half 100 1 464 293 364 OK
stagger reverse_2nd_half 100 2 563 335 463 OK
stagger reverse_2nd_half 100 4 590 355 490 OK
stagger reverse_2nd_half 100 8 627 367 527 OK
stagger reverse_2nd_half 100 16 651 453 551 OK
stagger reverse_2nd_half 100 32 633 316 533 OK
stagger reverse_2nd_half 100 64 678 482 578 OK
stagger reverse_2nd_half 100 128 665 493 565 OK
stagger sort 100 1 472 198 372 OK
stagger sort 100 2 472 198 372 OK
stagger sort 100 4 472 198 372 OK
stagger sort 100 8 472 198 372 OK
stagger sort 100 16 472 198 372 OK
stagger sort 100 32 472 198 372 OK
stagger sort 100 64 472 198 372 OK
stagger sort 100 128 472 198 372 OK
stagger dither 100 1 551 315 451 OK
stagger dither 100 2 589 328 489 OK
stagger dither 100 4 586 354 486 OK
stagger dither 100 8 633 363 533 OK
stagger dither 100 16 653 436 553 OK
stagger dither 100 32 631 374 531 OK
stagger dither 100 64 673 480 573 OK
stagger dither 100 128 668 465 568 OK
stagger unriffle 100 1 662 447 562 OK
stagger unriffle 100 2 643 429 543 OK
stagger unriffle 100 4 656 374 556 OK
stagger unriffle 100 8 662 487 562 OK
stagger unriffle 100 16 670 506 570 OK
stagger unriffle 100 32 669 503 569 OK
stagger unriffle 100 64 650 367 550 OK
stagger unriffle 100 128 662 498 562 OK
stagger unriffle_skewed 100 1 673 478 573 OK
stagger unriffle_skewed 100 2 650 450 550 OK
stagger unriffle_skewed 100 4 655 381 555 OK
stagger unriffle_skewed 100 8 663 500 563 OK
stagger unriffle_skewed 100 16 669 513 569 OK
stagger unriffle_skewed 100 32 655 554 555 OK
stagger unriffle_skewed 100 64 652 383 552 OK
stagger unriffle_skewed 100 128 658 447 558 OK
plateau copy 100 1 472 198 372 OK
plateau copy 100 2 472 198 372 OK
plateau copy 100 4 472 198 372 OK
plateau copy 100 8 472 198 372 OK
plateau copy 100 16 472 198 372 OK
plateau copy 100 32 472 198 372 OK
plateau copy 100 64 472 198 372 OK
plateau copy 100 128 472 198 372 OK
plateau reverse 100 1 475 201 375 OK
plateau reverse 100 2 476 200 376 OK
plateau reverse 100 4 448 199 348 OK
plateau reverse 100 8 460 201 360 OK
plateau reverse 100 16 472 200 372 OK
plateau reverse 100 32 476 199 376 OK
plateau reverse 100 64 444 199 344 OK
plateau reverse 100 128 416 198 316 OK
plateau reverse_1st_half 100 1 474 200 374 OK
plateau reverse_1st_half 100 2 476 200 376 OK
plateau reverse_1st_half 100 4 482 202 382 OK
plateau reverse_1st_half 100 8 488 201 388 OK
plateau reverse_1st_half 100 16 490 200 390 OK
plateau reverse_1st_half 100 32 506 201 406 OK
plateau reverse_1st_half 100 64 492 200 392 OK
plateau reverse_1st_half 100 128 492 200 392 OK
plateau reverse_2nd_half 100 1 472 198 372 OK
plateau reverse_2nd_half 100 2 472 198 372 OK
plateau reverse_2nd_half 100 4 472 198 372 OK
plateau reverse_2nd_half 100 8 472 198 372 OK
plateau reverse_2nd_half 100 16 472 198 372 OK
plateau reverse_2nd_half 100 32 472 198 372 OK
plateau reverse_2nd_half 100 64 470 202 370 OK
plateau reverse_2nd_half 100 128 470 201 370 OK
plateau sort 100 1 472 198 372 OK
plateau sort 100 2 472 198 372 OK
plateau sort 100 4 472 198 372 OK
plateau sort 100 8 472 198 372 OK
plateau sort 100 16 472 198 372 OK
plateau sort 100 32 472 198 372 OK
plateau sort 100 64 472 198 372 OK
plateau sort 100 128 472 198 372 OK
plateau dither 100 1 652 374 552 OK
plateau dither 100 2 652 372 552 OK
plateau dither 100 4 651 368 551 OK
plateau dither 100 8 646 365 546 OK
plateau dither 100 16 636 354 536 OK
plateau dither 100 32 602 337 502 OK
plateau dither 100 64 551 300 451 OK
plateau dither 100 128 505 264 405 OK
plateau unriffle 100 1 472 198 372 OK
plateau unriffle 100 2 475 202 375 OK
plateau unriffle 100 4 480 209 380 OK
plateau unriffle 100 8 490 220 390 OK
plateau unriffle 100 16 511 254 411 OK
plateau unriffle 100 32 553 316 453 OK
plateau unriffle 100 64 632 436 532 OK
plateau unriffle 100 128 672 520 572 OK
plateau unriffle_skewed 100 1 472 198 372 OK
plateau unriffle_skewed 100 2 473 200 373 OK
plateau unriffle_skewed 100 4 476 206 376 OK
plateau unriffle_skewed 100 8 484 222 384 OK
plateau unriffle_skewed 100 16 504 262 404 OK
plateau unriffle_skewed 100 32 546 346 446 OK
plateau unriffle_skewed 100 64 628 510 528 OK
plateau unriffle_skewed 100 128 689 632 589 OK
shuffle copy 100 1 472 198 372 OK
shuffle copy 100 2 580 336 480 OK
shuffle copy 100 4 538 291 438 OK
shuffle copy 100 8 501 239 401 OK
shuffle copy 100 16 496 231 396 OK
shuffle copy 100 32 479 207 379 OK
shuffle copy 100 64 472 198 372 OK
shuffle copy 100 128 472 198 372 OK
shuffle reverse 100 1 416 198 316 OK
shuffle reverse 100 2 526 335 426 OK
shuffle reverse 100 4 491 290 391 OK
shuffle reverse 100 8 449 239 349 OK
shuffle reverse 100 16 441 230 341 OK
shuffle reverse 100 32 425 210 325 OK
shuffle reverse 100 64 416 198 316 OK
shuffle reverse 100 128 416 198 316 OK
shuffle reverse_1st_half 100 1 492 200 392 OK
shuffle reverse_1st_half 100 2 591 338 491 OK
shuffle reverse_1st_half 100 4 550 291 450 OK
shuffle reverse_1st_half 100 8 519 240 419 OK
shuffle reverse_1st_half 100 16 515 233 415 OK
shuffle reverse_1st_half 100 32 499 207 399 OK
shuffle reverse_1st_half 100 64 492 200 392 OK
shuffle reverse_1st_half 100 128 492 200 392 OK
shuffle reverse_2nd_half 100 1 470 201 370 OK
shuffle reverse_2nd_half 100 2 571 337 471 OK
shuffle reverse_2nd_half 100 4 541 296 441 OK
shuffle reverse_2nd_half 100 8 503 241 403 OK
shuffle reverse_2nd_half 100 16 496 231 396 OK
shuffle reverse_2nd_half 100 32 477 208 377 OK
shuffle reverse_2nd_half 100 64 470 201 370 OK
shuffle reverse_2nd_half 100 128 470 201 370 OK
shuffle sort 100 1 472 198 372 OK
shuffle sort 100 2 472 198 372 OK
shuffle sort 100 4 472 198 372 OK
shuffle sort 100 8 472 198 372 OK
shuffle sort 100 16 472 198 372 OK
shuffle sort 100 32 472 198 372 OK
shuffle sort 100 64 472 198 372 OK
shuffle sort 100 128 472 198 372 OK
shuffle dither 100 1 481 216 381 OK
shuffle dither 100 2 588 330 488 OK
shuffle dither 100 4 547 295 447 OK
shuffle dither 100 8 513 261 413 OK
shuffle dither 100 16 507 252 407 OK
shuffle dither 100 32 488 226 388 OK
shuffle dither 100 64 481 216 381 OK
shuffle dither 100 128 481 216 381 OK
shuffle unriffle 100 1 672 520 572 OK
shuffle unriffle 100 2 663 429 563 OK
shuffle unriffle 100 4 665 451 565 OK
shuffle unriffle 100 8 669 487 569 OK
shuffle unriffle 100 16 670 498 570 OK
shuffle unriffle 100 32 671 514 571 OK
shuffle unriffle 100 64 672 520 572 OK
shuffle unriffle 100 128 672 520 572 OK
shuffle unriffle_skewed 100 1 689 632 589 OK
shuffle unriffle_skewed 100 2 678 443 578 OK
shuffle unriffle_skewed 100 4 677 492 577 OK
shuffle unriffle_skewed 100 8 681 564 581 OK
shuffle unriffle_skewed 100 16 683 580 583 OK
shuffle unriffle_skewed 100 32 687 617 587 OK
shuffle unriffle_skewed 100 64 689 632 589 OK
shuffle unriffle_skewed 100 128 689 632 589 OK
sawtooth copy 1023 1 6142 2044 5119 OK
sawtooth copy 1023 2 8445 3065 7422 OK
sawtooth copy 1023 4 9213 3573 8190 OK
sawtooth copy 1023 8 9277 3821 8254 OK
sawtooth copy 1023 16 9021 3933 7998 OK
sawtooth copy 1023 32 8621 3965 7598 OK
sawtooth copy 1023 64 8157 3933 7134 OK
sawtooth copy 1023 128 7665 3821 6642 OK
sawtooth copy 1023 256 7161 3573 6138 OK
sawtooth copy 1023 512 6652 3065 5629 OK
sawtooth copy 1023 1024 6142 2044 5119 OK
sawtooth reverse 1023 1 6142 2044 5119 OK
sawtooth reverse 1023 2 8445 3065 7422 OK
sawtooth reverse 1023 4 9467 3828 8444 OK
sawtooth reverse 1023 8 9783 4075 8760 OK
sawtooth reverse 1023 16 9711 4122 8688 OK
sawtooth reverse 1023 32 9423 4089 8400 OK
sawtooth reverse 1023 64 9007 4008 7984 OK
sawtooth reverse 1023 128 8499 3863 7476 OK
sawtooth reverse 1023 256 7895 3594 6872 OK
sawtooth reverse 1023 512 7146 3073 6123 OK
sawtooth reverse 1023 1024 6133 2044 5110 OK
sawtooth reverse_1st_half 1023 1 6142 2044 5119 OK
sawtooth reverse_1st_half 1023 2 8445 3065 7422 OK
sawtooth reverse_1st_half 1023 4 9341 3701 8318 OK
sawtooth reverse_1st_half 1023 8 9533 3949 8510 OK
sawtooth reverse_1st_half 1023 16 9373 4029 8350 OK
sawtooth reverse_1st_half 1023 32 9037 4029 8014 OK
sawtooth reverse_1st_half 1023 64 8613 3973 7590 OK
sawtooth reverse_1st_half 1023 128 8145 3845 7122 OK
sawtooth reverse_1st_half 1023 256 7655 3587 6632 OK
sawtooth reverse_1st_half 1023 512 7154 3073 6131 OK
sawtooth reverse_1st_half 1023 1024 6644 2052 5621 OK
sawtooth reverse_2nd_half 1023 1 6142 2044 5119 OK
sawtooth reverse_2nd_half 1023 2 8444 3063 7421 OK
sawtooth reverse_2nd_half 1023 4 9212 3571 8189 OK
sawtooth reverse_2nd_half 1023 8 9404 3883 8381 OK
sawtooth reverse_2nd_half 1023 16 9276 3995 8253 OK
sawtooth reverse_2nd_half 1023 32 8972 4011 7949 OK
sawtooth reverse_2nd_half 1023 64 8572 3963 7549 OK
sawtooth reverse_2nd_half 1023 128 8120 3839 7097 OK
sawtooth reverse_2nd_half 1023 256 7640 3583 6617 OK
sawtooth reverse_2nd_half 1023 512 7146 3071 6123 OK
sawtooth reverse_2nd_half 1023 1024 6644 2045 5621 OK
sawtooth sort 1023 1 6142 2044 5119 OK
sawtooth sort 1023 2 6142 2044 5119 OK
sawtooth sort 1023 4 6142 2044 5119 OK
sawtooth sort 1023 8 6142 2044 5119 OK
sawtooth sort 1023 16 6142 2044 5119 OK
sawtooth sort 1023 32 6142 2044 5119 OK
sawtooth sort 1023 64 6142 2044 5119 OK
sawtooth sort 1023 128 6142 2044 5119 OK
sawtooth sort 1023 256 6142 2044 5119 OK
sawtooth sort 1023 512 6142 2044 5119 OK
sawtooth sort 1023 1024 6142 2044 5119 OK
sawtooth dither 1023 1 9489 3928 8466 OK
sawtooth dither 1023 2 9805 3899 8782 OK
sawtooth dither 1023 4 9974 4499 8951 OK
sawtooth dither 1023 8 9794 4536 8771 OK
sawtooth dither 1023 16 9428 4683 8405 OK
sawtooth dither 1023 32 8990 4674 7967 OK
sawtooth dither 1023 64 8512 4651 7489 OK
sawtooth dither 1023 128 8019 4530 6996 OK
sawtooth dither 1023 256 7517 4285 6494 OK
sawtooth dither 1023 512 7009 3777 5986 OK
sawtooth dither 1023 1024 6499 2758 5476 OK
sawtooth unriffle 1023 1 6142 2044 5119 OK
sawtooth unriffle 1023 2 6142 2044 5119 OK
sawtooth unriffle 1023 4 6405 2054 5382 OK
sawtooth unriffle 1023 8 6928 2077 5905 OK
sawtooth unriffle 1023 16 7395 2127 6372 OK
sawtooth unriffle 1023 32 7874 2236 6851 OK
sawtooth unriffle 1023 64 8385 2472 7362 OK
sawtooth unriffle 1023 128 8928 2979 7905 OK
sawtooth unriffle 1023 256 9483 4061 8460 OK
sawtooth unriffle 1023 512 9982 6358 8959 OK
sawtooth unriffle 1023 1024 10202 9699 9179 OK
sawtooth unriffle_skewed 1023 1 6142 2044 5119 OK
sawtooth unriffle_skewed 1023 2 6142 2045 5119 OK
sawtooth unriffle_skewed 1023 4 6646 2055 5623 OK
sawtooth unriffle_skewed 1023 8 7023 2069 6000 OK
sawtooth unriffle_skewed 1023 16 7402 2097 6379 OK
sawtooth unriffle_skewed 1023 32 7815 2163 6792 OK
sawtooth unriffle_skewed 1023 64 8262 2323 7239 OK
sawtooth unriffle_skewed 1023 128 8735 2705 7712 OK
sawtooth unriffle_skewed 1023 256 9226 3597 8203 OK
sawtooth unriffle_skewed 1023 512 9729 5639 8706 OK
sawtooth unriffle_skewed 1023 1024 10230 10220 9207 OK
rand copy 1023 1 6142 2044 5119 OK
rand copy 1023 2 8195 2690 7172 OK
rand copy 1023 4 9206 3248 8183 OK
rand copy 1023 8 9596 3792 8573 OK
rand copy 1023 16 9837 4382 8814 OK
rand copy 1023 32 9912 4825 8889 OK
rand copy 1023 64 9904 5179 8881 OK
rand copy 1023 128 9934 5573 8911 OK
rand copy 1023 256 9962 5849 8939 OK
rand copy 1023 512 9937 6037 8914 OK
rand copy 1023 1024 9954 6035 8931 OK
rand reverse 1023 1 6142 2044 5119 OK
rand reverse 1023 2 8183 2696 7160 OK
rand reverse 1023 4 9157 3246 8134 OK
rand reverse 1023 8 9645 3811 8622 OK
rand reverse 1023 16 9818 4350 8795 OK
rand reverse 1023 32 9925 4818 8902 OK
rand reverse 1023 64 9940 5259 8917 OK
rand reverse 1023 128 9958 5650 8935 OK
rand reverse 1023 256 9958 5887 8935 OK
rand reverse 1023 512 9950 6036 8927 OK
rand reverse 1023 1024 9962 6067 8939 OK
rand reverse_1st_half 1023 1 6142 2044 5119 OK
rand reverse_1st_half 1023 2 8144 2690 7121 OK
rand reverse_1st_half 1023 4 9188 3229 8165 OK
rand reverse_1st_half 1023 8 9620 3786 8597 OK
rand reverse_1st_half 1023 16 9823 4359 8800 OK
rand reverse_1st_half 1023 32 9904 4805 8881 OK
rand reverse_1st_half 1023 64 9923 5230 8900 OK
rand reverse_1st_half 1023 128 9939 5601 8916 OK
rand reverse_1st_half 1023 256 9950 5844 8927 OK
rand reverse_1st_half 1023 512 9939 6045 8916 OK
rand reverse_1st_half 1023 1024 9963 6079 8940 OK
rand reverse_2nd_half 1023 1 6142 2044 5119 OK
rand reverse_2nd_half 1023 2 8206 2679 7183 OK
rand reverse_2nd_half 1023 4 9175 3261 8152 OK
rand reverse_2nd_half 1023 8 9603 3788 8580 OK
rand reverse_2nd_half 1023 16 9837 4367 8814 OK
rand reverse_2nd_half 1023 32 9905 4836 8882 OK
rand reverse_2nd_half 1023 64 9911 5215 8888 OK
rand reverse_2nd_half 1023 128 9937 5603 8914 OK
rand reverse_2nd_half 1023 256 9954 5843 8931 OK
rand reverse_2nd_half 1023 512 9946 5993 8923 OK
rand reverse_2nd_half 1023 1024 9966 6046 8943 OK
rand sort 1023 1 6142 2044 5119 OK
rand sort 1023 2 6142 2044 5119 OK
rand sort 1023 4 6142 2044 5119 OK
rand sort 1023 8 6142 2044 5119 OK
rand sort 1023 16 6142 2044 5119 OK
rand sort 1023 32 6142 2044 5119 OK
rand sort 1023 64 6142 2044 5119 OK
rand sort 1023 128 6142 2044 5119 OK
rand sort 1023 256 6142 2044 5119 OK
rand sort 1023 512 6142 2044 5119 OK
rand sort 1023 1024 6142 2044 5119 OK
rand dither 1023 1 9489 3928 8466 OK
rand dither 1023 2 9737 3633 8714 OK
rand dither 1023 4 9862 3780 8839 OK
rand dither 1023 8 9905 4048 8882 OK
rand dither 1023 16 9968 4471 8945 OK
rand dither 1023 32 9985 4884 8962 OK
rand dither 1023 64 9930 5288 8907 OK
rand dither 1023 128 9947 5611 8924 OK
rand dither 1023 256 9950 5888 8927 OK
rand dither 1023 512 9932 6002 8909 OK
rand dither 1023 1024 9953 6055 8930 OK
rand unriffle 1023 1 6142 2044 5119 OK
rand unriffle 1023 2 8210 2680 7187 OK
rand unriffle 1023 4 9188 3287 8165 OK
rand unriffle 1023 8 9612 3784 8589 OK
rand unriffle 1023 16 9802 4407 8779 OK
rand unriffle 1023 32 9915 4860 8892 OK
rand unriffle 1023 64 9945 5299 8922 OK
rand unriffle 1023 128 9989 5659 8966 OK
rand unriffle 1023 256 9919 5898 8896 OK
rand unriffle 1023 512 9960 6084 8937 OK
rand unriffle 1023 1024 9910 6009 8887 OK
rand unriffle_skewed 1023 1 6142 2044 5119 OK
rand unriffle_skewed 1023 2 8212 2683 7189 OK
rand unriffle_skewed 1023 4 9199 3270 8176 OK
rand unriffle_skewed 1023 8 9621 3855 8598 OK
rand unriffle_skewed 1023 16 9815 4403 8792 OK
rand unriffle_skewed 1023 32 9928 4895 8905 OK
rand unriffle_skewed 1023 64 9953 5302 8930 OK
rand unriffle_skewed 1023 128 9967 5622 8944 OK
rand unriffle_skewed 1023 256 9940 5918 8917 OK
rand unriffle_skewed 1023 512 9952 6070 8929 OK
rand unriffle_skewed 1023 1024 9917 6078 8894 OK
stagger copy 1023 1 6652 3065 5629 OK
stagger copy 1023 2 7335 3419 6312 OK
stagger copy 1023 4 7767 4108 6744 OK
stagger copy 1023 8 8221 4795 7198 OK
stagger copy 1023 16 8681 5191 7658 OK
stagger copy 1023 32 9044 4062 8021 OK
stagger copy 1023 64 9475 6711 8452 OK
stagger copy 1023 128 9740 6263 8717 OK
stagger copy 1023 256 9711 5691 8688 OK
stagger copy 1023 512 9040 4436 8017 OK
stagger copy 1023 1024 6652 3065 5629 OK
stagger reverse 1023 1 7145 3072 6122 OK
stagger reverse 1023 2 7316 3417 6293 OK
stagger reverse 1023 4 7738 4107 6715 OK
stagger reverse 1023 8 8187 4571 7164 OK
stagger reverse 1023 16 8610 5179 7587 OK
stagger reverse 1023 32 9029 4002 8006 OK
stagger reverse 1023 64 9498 6718 8475 OK
stagger reverse 1023 128 9788 6529 8765 OK
stagger reverse 1023 256 9752 5740 8729 OK
stagger reverse 1023 512 9029 4430 8006 OK
stagger reverse 1023 1024 7145 3072 6122 OK
stagger reverse_1st_half 1023 1 7154 3073 6131 OK
stagger reverse_1st_half 1023 2 7491 3423 6468 OK
stagger reverse_1st_half 1023 4 7851 4113 6828 OK
stagger reverse_1st_half 1023 8 8256 4683 7233 OK
stagger reverse_1st_half 1023 16 8673 5192 7650 OK
stagger reverse_1st_half 1023 32 9055 4036 8032 OK
stagger reverse_1st_half 1023 64 9492 6715 8469 OK
stagger reverse_1st_half 1023 128 9766 6396 8743 OK
stagger reverse_1st_half 1023 256 9732 5715 8709 OK
stagger reverse_1st_half 1023 512 9035 4434 8012 OK
stagger reverse_1st_half 1023 1024 7154 3073 6131 OK
stagger reverse_2nd_half 1023 1 7146 3071 6123 OK
stagger reverse_2nd_half 1023 2 7399 3416 6376 OK
stagger reverse_2nd_half 1023 4 7766 4106 6743 OK
stagger reverse_2nd_half 1023 8 8185 4679 7162 OK
stagger reverse_2nd_half 1023 16 8666 5184 7643 OK
stagger reverse_2nd_half 1023 32 9040 4032 8017 OK
stagger reverse_2nd_half 1023 64 9491 6710 8468 OK
stagger reverse_2nd_half 1023 128 9752 6386 8729 OK
stagger reverse_2nd_half 1023 256 9707 5691 8684 OK
stagger reverse_2nd_half 1023 512 9027 4431 8004 OK
stagger reverse_2nd_half 1023 1024 7146 3071 6123 OK
stagger sort 1023 1 6142 2044 5119 OK
stagger sort 1023 2 6142 2044 5119 OK
stagger sort 1023 4 6142 2044 5119 OK
stagger sort 1023 8 6142 2044 5119 OK
stagger sort 1023 16 6142 2044 5119 OK
stagger sort 1023 32 6142 2044 5119 OK
stagger sort 1023 64 6142 2044 5119 OK
stagger sort 1023 128 6142 2044 5119 OK
stagger sort 1023 256 6142 2044 5119 OK
stagger sort 1023 512 6142 2044 5119 OK
stagger sort 1023 1024 6142 2044 5119 OK
stagger dither 1023 1 6754 3064 5731 OK
stagger dither 1023 2 7436 3350 6413 OK
stagger dither 1023 4 7767 3784 6744 OK
stagger dither 1023 8 8221 4479 7198 OK
stagger dither 1023 16 8680 4974 7657 OK
stagger dither 1023 32 9085 5227 8062 OK
stagger dither 1023 64 9474 6300 8451 OK
stagger dither 1023 128 9740 6305 8717 OK
stagger dither 1023 256 9712 5224 8689 OK
stagger dither 1023 512 9040 3893 8017 OK
stagger dither 1023 1024 6754 3064 5731 OK
stagger unriffle 1023 1 9982 6358 8959 OK
stagger unriffle 1023 2 10095 8347 9072 OK
stagger unriffle 1023 4 10024 8213 9001 OK
stagger unriffle 1023 8 10106 8423 9083 OK
stagger unriffle 1023 16 10092 8643 9069 OK
stagger unriffle 1023 32 10026 6285 9003 OK
stagger unriffle 1023 64 10061 8542 9038 OK
stagger unriffle 1023 128 10054 8456 9031 OK
stagger unriffle 1023 256 10042 7781 9019 OK
stagger unriffle 1023 512 10050 7574 9027 OK
stagger unriffle 1023 1024 9982 6358 8959 OK
stagger unriffle_skewed 1023 1 9729 5639 8706 OK
stagger unriffle_skewed 1023 2 10227 9515 9204 OK
stagger unriffle_skewed 1023 4 10226 9370 9203 OK
stagger unriffle_skewed 1023 8 10226 9279 9203 OK
stagger unriffle_skewed 1023 16 10223 9462 9200 OK
stagger unriffle_skewed 1023 32 10172 6960 9149 OK
stagger unriffle_skewed 1023 64 10223 9240 9200 OK
stagger unriffle_skewed 1023 128 10217 9057 9194 OK
stagger unriffle_skewed 1023 256 10197 8156 9174 OK
stagger unriffle_skewed 1023 512 10103 7619 9080 OK
stagger unriffle_skewed 1023 1024 9729 5639 8706 OK
plateau copy 1023 1 6142 2044 5119 OK
plateau copy 1023 2 6142 2044 5119 OK
plateau copy 1023 4 6142 2044 5119 OK
plateau copy 1023 8 6142 2044 5119 OK
plateau copy 1023 16 6142 2044 5119 OK
plateau copy 1023 32 6142 2044 5119 OK
plateau copy 1023 64 6142 2044 5119 OK
plateau copy 1023 128 6142 2044 5119 OK
plateau copy 1023 256 6142 2044 5119 OK
plateau copy 1023 512 6142 2044 5119 OK
plateau copy 1023 1024 6142 2044 5119 OK
plateau reverse 1023 1 6149 2052 5126 OK
plateau reverse 1023 2 6157 2052 5134 OK
plateau reverse 1023 4 6169 2052 5146 OK
plateau reverse 1023 8 6189 2052 5166 OK
plateau reverse 1023 16 6221 2052 5198 OK
plateau reverse 1023 32 6269 2052 5246 OK
plateau reverse 1023 64 6333 2052 5310 OK
plateau reverse 1023 128 6397 2052 5374 OK
plateau reverse 1023 256 6397 2052 5374 OK
plateau reverse 1023 512 6141 2052 5118 OK
plateau reverse 1023 1024 6133 2044 5110 OK
plateau reverse_1st_half 1023 1 6150 2052 5127 OK
plateau reverse_1st_half 1023 2 6157 2052 5134 OK
plateau reverse_1st_half 1023 4 6171 2053 5148 OK
plateau reverse_1st_half 1023 8 6195 2054 5172 OK
plateau reverse_1st_half 1023 16 6235 2055 5212 OK
plateau reverse_1st_half 1023 32 6299 2056 5276 OK
plateau reverse_1st_half 1023 64 6395 2057 5372 OK
plateau reverse_1st_half 1023 128 6523 2058 5500 OK
plateau reverse_1st_half 1023 256 6651 2059 5628 OK
plateau reverse_1st_half 1023 512 6644 2052 5621 OK
plateau reverse_1st_half 1023 1024 6644 2052 5621 OK
plateau reverse_2nd_half 1023 1 6142 2044 5119 OK
plateau reverse_2nd_half 1023 2 6142 2044 5119 OK
plateau reverse_2nd_half 1023 4 6142 2044 5119 OK
plateau reverse_2nd_half 1023 8 6142 2044 5119 OK
plateau reverse_2nd_half 1023 16 6142 2044 5119 OK
plateau reverse_2nd_half 1023 32 6142 2044 5119 OK
plateau reverse_2nd_half 1023 64 6142 2044 5119 OK
plateau reverse_2nd_half 1023 128 6142 2044 5119 OK
plateau reverse_2nd_half 1023 256 6142 2044 5119 OK
plateau reverse_2nd_half 1023 512 6149 2053 5126 OK
plateau reverse_2nd_half 1023 1024 6644 2045 5621 OK
plateau sort 1023 1 6142 2044 5119 OK
plateau sort 1023 2 6142 2044 5119 OK
plateau sort 1023 4 6142 2044 5119 OK
plateau sort 1023 8 6142 2044 5119 OK
plateau sort 1023 16 6142 2044 5119 OK
plateau sort 1023 32 6142 2044 5119 OK
plateau sort 1023 64 6142 2044 5119 OK
plateau sort 1023 128 6142 2044 5119 OK
plateau sort 1023 256 6142 2044 5119 OK
plateau sort 1023 512 6142 2044 5119 OK
plateau sort 1023 1024 6142 2044 5119 OK
plateau dither 1023 1 9489 3928 8466 OK
plateau dither 1023 2 9489 3926 8466 OK
plateau dither 1023 4 9488 3922 8465 OK
plateau dither 1023 8 9483 3919 8460 OK
plateau dither 1023 16 9473 3908 8450 OK
plateau dither 1023 32 9439 3891 8416 OK
plateau dither 1023 64 9377 3854 8354 OK
plateau dither 1023 128 9190 3781 8167 OK
plateau dither 1023 256 8841 3632 7818 OK
plateau dither 1023 512 7888 3339 6865 OK
plateau dither 1023 1024 6499 2758 5476 OK
plateau unriffle 1023 1 6142 2044 5119 OK
plateau unriffle 1023 2 6150 2053 5127 OK
plateau unriffle 1023 4 6164 2069 5141 OK
plateau unriffle 1023 8 6190 2100 5167 OK
plateau unriffle 1023 16 6239 2162 5216 OK
plateau unriffle 1023 32 6331 2287 5308 OK
plateau unriffle 1023 64 6502 2539 5479 OK
plateau unriffle 1023 128 6816 3046 5793 OK
plateau unriffle 1023 256 7385 4064 6362 OK
plateau unriffle 1023 512 8410 6114 7387 OK
plateau unriffle 1023 1024 10202 9699 9179 OK
plateau unriffle_skewed 1023 1 6142 2044 5119 OK
plateau unriffle_skewed 1023 2 6143 2046 5120 OK
plateau unriffle_skewed 1023 4 6145 2050 5122 OK
plateau unriffle_skewed 1023 8 6152 2064 5129 OK
plateau unriffle_skewed 1023 16 6171 2102 5148 OK
plateau unriffle_skewed 1023 32 6218 2196 5195 OK
plateau unriffle_skewed 1023 64 6329 2418 5306 OK
plateau unriffle_skewed 1023 128 6584 2928 5561 OK
plateau unriffle_skewed 1023 256 7159 4078 6136 OK
plateau unriffle_skewed 1023 512 8437 6634 7414 OK
plateau unriffle_skewed 1023 1024 10230 10220 9207 OK
shuffle copy 1023 1 6142 2044 5119 OK
shuffle copy 1023 2 7497 3576 6474 OK
shuffle copy 1023 4 7244 3040 6221 OK
shuffle copy 1023 8 6612 2523 5589 OK
shuffle copy 1023 16 6379 2307 5356 OK
shuffle copy 1023 32 6270 2195 5247 OK
shuffle copy 1023 64 6210 2130 5187 OK
shuffle copy 1023 128 6171 2080 5148 OK
shuffle copy 1023 256 6153 2055 5130 OK
shuffle copy 1023 512 6153 2055 5130 OK
shuffle copy 1023 1024 6153 2055 5130 OK
shuffle reverse 1023 1 6133 2044 5110 OK
shuffle reverse 1023 2 7496 3577 6473 OK
shuffle reverse 1023 4 7221 3022 6198 OK
shuffle reverse 1023 8 6612 2528 5589 OK
shuffle reverse 1023 16 6376 2315 5353 OK
shuffle reverse 1023 32 6263 2199 5240 OK
shuffle reverse 1023 64 6204 2133 5181 OK
shuffle reverse 1023 128 6163 2081 5140 OK
shuffle reverse 1023 256 6144 2055 5121 OK
shuffle reverse 1023 512 6144 2055 5121 OK
shuffle reverse 1023 1024 6144 2055 5121 OK
shuffle reverse_1st_half 1023 1 6644 2052 5621 OK
shuffle reverse_1st_half 1023 2 7894 3589 6871 OK
shuffle reverse_1st_half 1023 4 7362 3038 6339 OK
shuffle reverse_1st_half 1023 8 7062 2533 6039 OK
shuffle reverse_1st_half 1023 16 6857 2322 5834 OK
shuffle reverse_1st_half 1023 32 6760 2205 5737 OK
shuffle reverse_1st_half 1023 64 6708 2139 5685 OK
shuffle reverse_1st_half 1023 128 6669 2088 5646 OK
shuffle reverse_1st_half 1023 256 6653 2063 5630 OK
shuffle reverse_1st_half 1023 512 6653 2063 5630 OK
shuffle reverse_1st_half 1023 1024 6653 2063 5630 OK
shuffle reverse_2nd_half 1023 1 6644 2045 5621 OK
shuffle reverse_2nd_half 1023 2 7996 3584 6973 OK
shuffle reverse_2nd_half 1023 4 7634 3048 6611 OK
shuffle reverse_2nd_half 1023 8 7079 2535 6056 OK
shuffle reverse_2nd_half 1023 16 6862 2314 5839 OK
shuffle reverse_2nd_half 1023 32 6759 2197 5736 OK
shuffle reverse_2nd_half 1023 64 6706 2133 5683 OK
shuffle reverse_2nd_half 1023 128 6673 2083 5650 OK
shuffle reverse_2nd_half 1023 256 6655 2056 5632 OK
shuffle reverse_2nd_half 1023 512 6655 2056 5632 OK
shuffle reverse_2nd_half 1023 1024 6655 2056 5632 OK
shuffle sort 1023 1 6142 2044 5119 OK
shuffle sort 1023 2 6142 2044 5119 OK
shuffle sort 1023 4 6142 2044 5119 OK
shuffle sort 1023 8 6142 2044 5119 OK
shuffle sort 1023 16 6142 2044 5119 OK
shuffle sort 1023 32 6142 2044 5119 OK
shuffle sort 1023 64 6142 2044 5119 OK
shuffle sort 1023 128 6142 2044 5119 OK
shuffle sort 1023 256 6142 2044 5119 OK
shuffle sort 1023 512 6142 2044 5119 OK
shuffle sort 1023 1024 6142 2044 5119 OK
shuffle dither 1023 1 6244 2248 5221 OK
shuffle dither 1023 2 7567 3486 6544 OK
shuffle dither 1023 4 7334 3098 6311 OK
shuffle dither 1023 8 6717 2690 5694 OK
shuffle dither 1023 16 6481 2488 5458 OK
shuffle dither 1023 32 6369 2385 5346 OK
shuffle dither 1023 64 6312 2329 5289 OK
shuffle dither 1023 128 6274 2285 5251 OK
shuffle dither 1023 256 6255 2260 5232 OK
shuffle dither 1023 512 6255 2260 5232 OK
shuffle dither 1023 1024 6255 2260 5232 OK
shuffle unriffle 1023 1 10202 9699 9179 OK
shuffle unriffle 1023 2 10186 7254 9163 OK
shuffle unriffle 1023 4 10130 7475 9107 OK
shuffle unriffle 1023 8 10164 8557 9141 OK
shuffle unriffle 1023 16 10181 9100 9158 OK
shuffle unriffle 1023 32 10196 9393 9173 OK
shuffle unriffle 1023 64 10198 9542 9175 OK
shuffle unriffle 1023 128 10202 9642 9179 OK
shuffle unriffle 1023 256 10202 9684 9179 OK
shuffle unriffle 1023 512 10202 9684 9179 OK
shuffle unriffle 1023 1024 10202 9684 9179 OK
shuffle unriffle_skewed 1023 1 10230 10220 9207 OK
shuffle unriffle_skewed 1023 2 10201 7717 9178 OK
shuffle unriffle_skewed 1023 4 10132 7614 9109 OK
shuffle unriffle_skewed 1023 8 10187 8860 9164 OK
shuffle unriffle_skewed 1023 16 10205 9501 9182 OK
shuffle unriffle_skewed 1023 32 10217 9842 9194 OK
shuffle unriffle_skewed 1023 64 10221 10019 9198 OK
shuffle unriffle_skewed 1023 128 10228 10137 9205 OK
shuffle unriffle_skewed 1023 256 10230 10199 9207 OK
shuffle unriffle_skewed 1023 512 10230 10199 9207 OK
shuffle unriffle_skewed 1023 1024 10230 10199 9207 OK
sawtooth copy 1024 1 6144 2046 5120 OK
sawtooth copy 1024 2 8448 3068 7424 OK
sawtooth copy 1024 4 9216 3576 8192 OK
sawtooth copy 1024 8 9280 3824 8256 OK
sawtooth copy 1024 16 9024 3936 8000 OK
sawtooth copy 1024 32 8624 3968 7600 OK
sawtooth copy 1024 64 8160 3936 7136 OK
sawtooth copy 1024 128 7668 3824 6644 OK
sawtooth copy 1024 256 7164 3576 6140 OK
sawtooth copy 1024 512 6655 3068 5631 OK
sawtooth copy 1024 1024 6144 2046 5120 OK
sawtooth reverse 1024 1 6144 2046 5120 OK
sawtooth reverse 1024 2 8448 3068 7424 OK
sawtooth reverse 1024 4 9216 3576 8192 OK
sawtooth reverse 1024 8 9280 3824 8256 OK
sawtooth reverse 1024 16 9024 3936 8000 OK
sawtooth reverse 1024 32 8624 3968 7600 OK
sawtooth reverse 1024 64 8160 3936 7136 OK
sawtooth reverse 1024 128 7668 3824 6644 OK
sawtooth reverse 1024 256 7164 3576 6140 OK
sawtooth reverse 1024 512 6655 3068 5631 OK
sawtooth reverse 1024 1024 6144 2046 5120 OK
sawtooth reverse_1st_half 1024 1 6144 2046 5120 OK
sawtooth reverse_1st_half 1024 2 8448 3068 7424 OK
sawtooth reverse_1st_half 1024 4 9216 3576 8192 OK
sawtooth reverse_1st_half 1024 8 9280 3824 8256 OK
sawtooth reverse_1st_half 1024 16 9024 3936 8000 OK
sawtooth reverse_1st_half 1024 32 8624 3968 7600 OK
sawtooth reverse_1st_half 1024 64 8160 3936 7136 OK
sawtooth reverse_1st_half 1024 128 7668 3824 6644 OK
sawtooth reverse_1st_half 1024 256 7164 3576 6140 OK
sawtooth reverse_1st_half 1024 512 6655 3068 5631 OK
sawtooth reverse_1st_half 1024 1024 6144 2046 5120 OK
sawtooth reverse_2nd_half 1024 1 6144 2046 5120 OK
sawtooth reverse_2nd_half 1024 2 8448 3068 7424 OK
sawtooth reverse_2nd_half 1024 4 9216 3576 8192 OK
sawtooth reverse_2nd_half 1024 8 9280 3824 8256 OK
sawtooth reverse_2nd_half 1024 16 9024 3936 8000 OK
sawtooth reverse_2nd_half 1024 32 8624 3968 7600 OK
sawtooth reverse_2nd_half 1024 64 8160 3936 7136 OK
sawtooth reverse_2nd_half 1024 128 7668 3824 6644 OK
sawtooth reverse_2nd_half 1024 256 7164 3576 6140 OK
sawtooth reverse_2nd_half 1024 512 6655 3068 5631 OK
sawtooth reverse_2nd_half 1024 1024 6144 2046 5120 OK
sawtooth sort 1024 1 6144 2046 5120 OK
sawtooth sort 1024 2 6144 2046 5120 OK
sawtooth sort 1024 4 6144 2046 5120 OK
sawtooth sort 1024 8 6144 2046 5120 OK
sawtooth sort 1024 16 6144 2046 5120 OK
sawtooth sort 1024 32 6144 2046 5120 OK
sawtooth sort 1024 64 6144 2046 5120 OK
sawtooth sort 1024 128 6144 2046 5120 OK
sawtooth sort 1024 256 6144 2046 5120 OK
sawtooth sort 1024 512 6144 2046 5120 OK
sawtooth sort 1024 1024 6144 2046 5120 OK
sawtooth dither 1024 1 9500 3932 8476 OK
sawtooth dither 1024 2 9817 3905 8793 OK
sawtooth dither 1024 4 9984 4503 8960 OK
sawtooth dither 1024 8 9802 4539 8778 OK
sawtooth dither 1024 16 9436 4687 8412 OK
sawtooth dither 1024 32 8997 4679 7973 OK
sawtooth dither 1024 64 8518 4655 7494 OK
sawtooth dither 1024 128 8023 4533 6999 OK
sawtooth dither 1024 256 7521 4289 6497 OK
sawtooth dither 1024 512 7012 3780 5988 OK
sawtooth dither 1024 1024 6501 2760 5477 OK
sawtooth unriffle 1024 1 6144 2046 5120 OK
sawtooth unriffle 1024 2 6144 2046 5120 OK
sawtooth unriffle 1024 4 6400 2048 5376 OK
sawtooth unriffle 1024 8 6784 2056 5760 OK
sawtooth unriffle 1024 16 7232 2080 6208 OK
sawtooth unriffle 1024 32 7712 2144 6688 OK
sawtooth unriffle 1024 64 8208 2304 7184 OK
sawtooth unriffle 1024 128 8712 2688 7688 OK
sawtooth unriffle 1024 256 9220 3584 8196 OK
sawtooth unriffle 1024 512 9730 5632 8706 OK
sawtooth unriffle 1024 1024 10241 10240 9217 OK
sawtooth unriffle_skewed 1024 1 6144 2046 5120 OK
sawtooth unriffle_skewed 1024 2 6144 2046 5120 OK
sawtooth unriffle_skewed 1024 4 6400 2048 5376 OK
sawtooth unriffle_skewed 1024 8 6784 2056 5760 OK
sawtooth unriffle_skewed 1024 16 7232 2080 6208 OK
sawtooth unriffle_skewed 1024 32 7712 2144 6688 OK
sawtooth unriffle_skewed 1024 64 8208 2304 7184 OK
sawtooth unriffle_skewed 1024 128 8712 2688 7688 OK
sawtooth unriffle_skewed 1024 256 9220 3584 8196 OK
sawtooth unriffle_skewed 1024 512 9730 5632 8706 OK
sawtooth unriffle_skewed 1024 1024 10241 10240 9217 OK
rand copy 1024 1 6144 2046 5120 OK
rand copy 1024 2 8197 2692 7173 OK
rand copy 1024 4 9211 3252 8187 OK
rand copy 1024 8 9607 3796 8583 OK
rand copy 1024 16 9849 4388 8825 OK
rand copy 1024 32 9924 4831 8900 OK
rand copy 1024 64 9914 5184 8890 OK
rand copy 1024 128 9945 5580 8921 OK
rand copy 1024 256 9973 5856 8949 OK
rand copy 1024 512 9948 6043 8924 OK
rand copy 1024 1024 9965 6041 8941 OK
rand reverse 1024 1 6144 2046 5120 OK
rand reverse 1024 2 8197 2694 7173 OK
rand reverse 1024 4 9139 3247 8115 OK
rand reverse 1024 8 9624 3844 8600 OK
rand reverse 1024 16 9846 4386 8822 OK
rand reverse 1024 32 9948 4801 8924 OK
rand reverse 1024 64 9941 5244 8917 OK
rand reverse 1024 128 9946 5603 8922 OK
rand reverse 1024 256 9973 5843 8949 OK
rand reverse 1024 512 9949 6011 8925 OK
rand reverse 1024 1024 9965 6025 8941 OK
rand reverse_1st_half 1024 1 6144 2046 5120 OK
rand reverse_1st_half 1024 2 8149 2693 7125 OK
rand reverse_1st_half 1024 4 9171 3229 8147 OK
rand reverse_1st_half 1024 8 9613 3800 8589 OK
rand reverse_1st_half 1024 16 9840 4379 8816 OK
rand reverse_1st_half 1024 32 9923 4802 8899 OK
rand reverse_1st_half 1024 64 9913 5200 8889 OK
rand reverse_1st_half 1024 128 9936 5574 8912 OK
rand reverse_1st_half 1024 256 9973 5834 8949 OK
rand reverse_1st_half 1024 512 9945 6036 8921 OK
rand reverse_1st_half 1024 1024 9963 6044 8939 OK
rand reverse_2nd_half 1024 1 6144 2046 5120 OK
rand reverse_2nd_half 1024 2 8243 2693 7219 OK
rand reverse_2nd_half 1024 4 9197 3270 8173 OK
rand reverse_2nd_half 1024 8 9620 3840 8596 OK
rand reverse_2nd_half 1024 16 9861 4395 8837 OK
rand reverse_2nd_half 1024 32 9940 4830 8916 OK
rand reverse_2nd_half 1024 64 9938 5228 8914 OK
rand reverse_2nd_half 1024 128 9950 5609 8926 OK
rand reverse_2nd_half 1024 256 9971 5860 8947 OK
rand reverse_2nd_half 1024 512 9950 6019 8926 OK
rand reverse_2nd_half 1024 1024 9966 6033 8942 OK
rand sort 1024 1 6144 2046 5120 OK
rand sort 1024 2 6144 2046 5120 OK
rand sort 1024 4 6144 2046 5120 OK
rand sort 1024 8 6144 2046 5120 OK
rand sort 1024 16 6144 2046 5120 OK
rand sort 1024 32 6144 2046 5120 OK
rand sort 1024 64 6144 2046 5120 OK
rand sort 1024 128 6144 2046 5120 OK
rand sort 1024 256 6144 2046 5120 OK
rand sort 1024 512 6144 2046 5120 OK
rand sort 1024 1024 6144 2046 5120 OK
rand dither 1024 1 9500 3932 8476 OK
rand dither 1024 2 9747 3637 8723 OK
rand dither 1024 4 9872 3784 8848 OK
rand dither 1024 8 9915 4054 8891 OK
rand dither 1024 16 9980 4474 8956 OK
rand dither 1024 32 9997 4889 8973 OK
rand dither 1024 64 9940 5293 8916 OK
rand dither 1024 128 9957 5616 8933 OK
rand dither 1024 256 9961 5895 8937 OK
rand dither 1024 512 9943 6006 8919 OK
rand dither 1024 1024 9964 6059 8940 OK
rand unriffle 1024 1 6144 2046 5120 OK
rand unriffle 1024 2 8192 2687 7168 OK
rand unriffle 1024 4 9200 3272 8176 OK
rand unriffle 1024 8 9630 3851 8606 OK
rand unriffle 1024 16 9816 4400 8792 OK
rand unriffle 1024 32 9939 4898 8915 OK
rand unriffle 1024 64 9960 5298 8936 OK
rand unriffle 1024 128 9977 5638 8953 OK
rand unriffle 1024 256 9955 5956 8931 OK
rand unriffle 1024 512 9965 6078 8941 OK
rand unriffle 1024 1024 9933 6100 8909 OK
rand unriffle_skewed 1024 1 6144 2046 5120 OK
rand unriffle_skewed 1024 2 8192 2687 7168 OK
rand unriffle_skewed 1024 4 9200 3272 8176 OK
rand unriffle_skewed 1024 8 9630 3851 8606 OK
rand unriffle_skewed 1024 16 9816 4400 8792 OK
rand unriffle_skewed 1024 32 9939 4898 8915 OK
rand unriffle_skewed 1024 64 9960 5298 8936 OK
rand unriffle_skewed 1024 128 9977 5638 8953 OK
rand unriffle_skewed 1024 256 9955 5956 8931 OK
rand unriffle_skewed 1024 512 9965 6078 8941 OK
rand unriffle_skewed 1024 1024 9933 6100 8909 OK
stagger copy 1024 1 6655 3068 5631 OK
stagger copy 1024 2 7327 3421 6303 OK
stagger copy 1024 4 7760 3702 6736 OK
stagger copy 1024 8 8207 4575 7183 OK
stagger copy 1024 16 8652 5064 7628 OK
stagger copy 1024 32 9040 4009 8016 OK
stagger copy 1024 64 9472 5486 8448 OK
stagger copy 1024 128 9716 5653 8692 OK
stagger copy 1024 256 9596 5212 8572 OK
stagger copy 1024 512 8703 4087 7679 OK
stagger copy 1024 1024 6144 2046 5120 OK
stagger reverse 1024 1 6655 3068 5631 OK
stagger reverse 1024 2 7327 3421 6303 OK
stagger reverse 1024 4 7760 3702 6736 OK
stagger reverse 1024 8 8207 4575 7183 OK
stagger reverse 1024 16 8652 5064 7628 OK
stagger reverse 1024 32 9040 4009 8016 OK
stagger reverse 1024 64 9472 5486 8448 OK
stagger reverse 1024 128 9716 5653 8692 OK
stagger reverse 1024 256 9596 5212 8572 OK
stagger reverse 1024 512 8703 4087 7679 OK
stagger reverse 1024 1024 6144 2046 5120 OK
stagger reverse_1st_half 1024 1 6655 3068 5631 OK
stagger reverse_1st_half 1024 2 7327 3421 6303 OK
stagger reverse_1st_half 1024 4 7760 3702 6736 OK
stagger reverse_1st_half 1024 8 8207 4575 7183 OK
stagger reverse_1st_half 1024 16 8652 5064 7628 OK
stagger reverse_1st_half 1024 32 9040 4009 8016 OK
stagger reverse_1st_half 1024 64 9472 5486 8448 OK
stagger reverse_1st_half 1024 128 9716 5653 8692 OK
stagger reverse_1st_half 1024 256 9596 5212 8572 OK
stagger reverse_1st_half 1024 512 8703 4087 7679 OK
stagger reverse_1st_half 1024 1024 6144 2046 5120 OK
stagger reverse_2nd_half 1024 1 6655 3068 5631 OK
stagger reverse_2nd_half 1024 2 7327 3421 6303 OK
stagger reverse_2nd_half 1024 4 7760 3702 6736 OK
stagger reverse_2nd_half 1024 8 8207 4575 7183 OK
stagger reverse_2nd_half 1024 16 8652 5064 7628 OK
stagger reverse_2nd_half 1024 32 9040 4009 8016 OK
stagger reverse_2nd_half 1024 64 9472 5486 8448 OK
stagger reverse_2nd_half 1024 128 9716 5653 8692 OK
stagger reverse_2nd_half 1024 256 9596 5212 8572 OK
stagger reverse_2nd_half 1024 512 8703 4087 7679 OK
stagger reverse_2nd_half 1024 1024 6144 2046 5120 OK
stagger sort 1024 1 6144 2046 5120 OK
stagger sort 1024 2 6144 2046 5120 OK
stagger sort 1024 4 6144 2046 5120 OK
stagger sort 1024 8 6144 2046 5120 OK
stagger sort 1024 16 6144 2046 5120 OK
stagger sort 1024 32 6144 2046 5120 OK
stagger sort 1024 64 6144 2046 5120 OK
stagger sort 1024 128 6144 2046 5120 OK
stagger sort 1024 256 6144 2046 5120 OK
stagger sort 1024 512 6144 2046 5120 OK
stagger sort 1024 1024 6144 2046 5120 OK
stagger dither 1024 1 6757 3068 5733 OK
stagger dither 1024 2 7428 3353 6404 OK
stagger dither 1024 4 7760 3382 6736 OK
stagger dither 1024 8 8207 4575 7183 OK
stagger dither 1024 16 8651 5326 7627 OK
stagger dither 1024 32 9067 4079 8043 OK
stagger dither 1024 64 9477 5817 8453 OK
stagger dither 1024 128 9717 5726 8693 OK
stagger dither 1024 256 9596 5212 8572 OK
stagger dither 1024 512 8806 4193 7782 OK
stagger dither 1024 1024 6501 2760 5477 OK
stagger unriffle 1024 1 9730 5632 8706 OK
stagger unriffle 1024 2 10241 10240 9217 OK
stagger unriffle 1024 4 10241 10240 9217 OK
stagger unriffle 1024 8 10241 10240 9217 OK
stagger unriffle 1024 16 10241 10240 9217 OK
stagger unriffle 1024 32 10241 10240 9217 OK
stagger unriffle 1024 64 10241 10240 9217 OK
stagger unriffle 1024 128 10241 10240 9217 OK
stagger unriffle 1024 256 10241 10240 9217 OK
stagger unriffle 1024 512 10241 10240 9217 OK
stagger unriffle 1024 1024 10241 10240 9217 OK
stagger unriffle_skewed 1024 1 9730 5632 8706 OK
stagger unriffle_skewed 1024 2 10241 10240 9217 OK
stagger unriffle_skewed 1024 4 10241 10240 9217 OK
stagger unriffle_skewed 1024 8 10241 10240 9217 OK
stagger unriffle_skewed 1024 16 10241 10240 9217 OK
stagger unriffle_skewed 1024 32 10241 10240 9217 OK
stagger unriffle_skewed 1024 64 10241 10240 9217 OK
stagger unriffle_skewed 1024 128 10241 10240 9217 OK
stagger unriffle_skewed 1024 256 10241 10240 9217 OK
stagger unriffle_skewed 1024 512 10241 10240 9217 OK
stagger unriffle_skewed 1024 1024 10241 10240 9217 OK
plateau copy 1024 1 6144 2046 5120 OK
plateau copy 1024 2 6144 2046 5120 OK
plateau copy 1024 4 6144 2046 5120 OK
plateau copy 1024 8 6144 2046 5120 OK
plateau copy 1024 16 6144 2046 5120 OK
plateau copy 1024 32 6144 2046 5120 OK
plateau copy 1024 64 6144 2046 5120 OK
plateau copy 1024 128 6144 2046 5120 OK
plateau copy 1024 256 6144 2046 5120 OK
plateau copy 1024 512 6144 2046 5120 OK
plateau copy 1024 1024 6144 2046 5120 OK
plateau reverse 1024 1 6153 2055 5129 OK
plateau reverse 1024 2 6160 2054 5136 OK
plateau reverse 1024 4 6172 2053 5148 OK
plateau reverse 1024 8 6192 2052 5168 OK
plateau reverse 1024 16 6224 2051 5200 OK
plateau reverse 1024 32 6272 2050 5248 OK
plateau reverse 1024 64 6336 2049 5312 OK
plateau reverse 1024 128 6400 2048 5376 OK
plateau reverse 1024 256 6400 2047 5376 OK
plateau reverse 1024 512 6144 2046 5120 OK
plateau reverse 1024 1024 6144 2046 5120 OK
plateau reverse_1st_half 1024 1 6152 2054 5128 OK
plateau reverse_1st_half 1024 2 6158 2053 5134 OK
plateau reverse_1st_half 1024 4 6168 2052 5144 OK
plateau reverse_1st_half 1024 8 6184 2051 5160 OK
plateau reverse_1st_half 1024 16 6208 2050 5184 OK
plateau reverse_1st_half 1024 32 6240 2049 5216 OK
plateau reverse_1st_half 1024 64 6272 2048 5248 OK
plateau reverse_1st_half 1024 128 6272 2047 5248 OK
plateau reverse_1st_half 1024 256 6144 2046 5120 OK
plateau reverse_1st_half 1024 512 6144 2046 5120 OK
plateau reverse_1st_half 1024 1024 6144 2046 5120 OK
plateau reverse_2nd_half 1024 1 6144 2046 5120 OK
plateau reverse_2nd_half 1024 2 6144 2046 5120 OK
plateau reverse_2nd_half 1024 4 6144 2046 5120 OK
plateau reverse_2nd_half 1024 8 6144 2046 5120 OK
plateau reverse_2nd_half 1024 16 6144 2046 5120 OK
plateau reverse_2nd_half 1024 32 6144 2046 5120 OK
plateau reverse_2nd_half 1024 64 6144 2046 5120 OK
plateau reverse_2nd_half 1024 128 6144 2046 5120 OK
plateau reverse_2nd_half 1024 256 6144 2046 5120 OK
plateau reverse_2nd_half 1024 512 6144 2046 5120 OK
plateau reverse_2nd_half 1024 1024 6144 2046 5120 OK
plateau sort 1024 1 6144 2046 5120 OK
plateau sort 1024 2 6144 2046 5120 OK
plateau sort 1024 4 6144 2046 5120 OK
plateau sort 1024 8 6144 2046 5120 OK
plateau sort 1024 16 6144 2046 5120 OK
plateau sort 1024 32 6144 2046 5120 OK
plateau sort 1024 64 6144 2046 5120 OK
plateau sort 1024 128 6144 2046 5120 OK
plateau sort 1024 256 6144 2046 5120 OK
plateau sort 1024 512 6144 2046 5120 OK
plateau sort 1024 1024 6144 2046 5120 OK
plateau dither 1024 1 9500 3932 8476 OK
plateau dither 1024 2 9500 3930 8476 OK
plateau dither 1024 4 9499 3926 8475 OK
plateau dither 1024 8 9494 3923 8470 OK
plateau dither 1024 16 9484 3912 8460 OK
plateau dither 1024 32 9450 3895 8426 OK
plateau dither 1024 64 9388 3858 8364 OK
plateau dither 1024 128 9201 3785 8177 OK
plateau dither 1024 256 8852 3636 7828 OK
plateau dither 1024 512 7898 3343 6874 OK
plateau dither 1024 1024 6501 2760 5477 OK
plateau unriffle 1024 1 6144 2046 5120 OK
plateau unriffle 1024 2 6145 2048 5121 OK
plateau unriffle 1024 4 6148 2054 5124 OK
plateau unriffle 1024 8 6156 2070 5132 OK
plateau unriffle 1024 16 6176 2110 5152 OK
plateau unriffle 1024 32 6224 2206 5200 OK
plateau unriffle 1024 64 6336 2430 5312 OK
plateau unriffle 1024 128 6592 2942 5568 OK
plateau unriffle 1024 256 7168 4094 6144 OK
plateau unriffle 1024 512 8448 6654 7424 OK
plateau unriffle 1024 1024 10241 10240 9217 OK
plateau unriffle_skewed 1024 1 6144 2046 5120 OK
plateau unriffle_skewed 1024 2 6145 2048 5121 OK
plateau unriffle_skewed 1024 4 6148 2054 5124 OK
plateau unriffle_skewed 1024 8 6156 2070 5132 OK
plateau unriffle_skewed 1024 16 6176 2110 5152 OK
plateau unriffle_skewed 1024 32 6224 2206 5200 OK
plateau unriffle_skewed 1024 64 6336 2430 5312 OK
plateau unriffle_skewed 1024 128 6592 2942 5568 OK
plateau unriffle_skewed 1024 256 7168 4094 6144 OK
plateau unriffle_skewed 1024 512 8448 6654 7424 OK
plateau unriffle_skewed 1024 1024 10241 10240 9217 OK
shuffle copy 1024 1 6144 2046 5120 OK
shuffle copy 1024 2 7499 3578 6475 OK
shuffle copy 1024 4 7246 3042 6222 OK
shuffle copy 1024 8 6614 2525 5590 OK
shuffle copy 1024 16 6381 2309 5357 OK
shuffle copy 1024 32 6272 2197 5248 OK
shuffle copy 1024 64 6212 2132 5188 OK
shuffle copy 1024 128 6173 2082 5149 OK
shuffle copy 1024 256 6155 2057 5131 OK
shuffle copy 1024 512 6155 2057 5131 OK
shuffle copy 1024 1024 6155 2057 5131 OK
shuffle reverse 1024 1 6144 2046 5120 OK
shuffle reverse 1024 2 7499 3578 6475 OK
shuffle reverse 1024 4 7246 3042 6222 OK
shuffle reverse 1024 8 6614 2525 5590 OK
shuffle reverse 1024 16 6381 2309 5357 OK
shuffle reverse 1024 32 6272 2197 5248 OK
shuffle reverse 1024 64 6212 2132 5188 OK
shuffle reverse 1024 128 6173 2082 5149 OK
shuffle reverse 1024 256 6155 2057 5131 OK
shuffle reverse 1024 512 6155 2057 5131 OK
shuffle reverse 1024 1024 6155 2057 5131 OK
shuffle reverse_1st_half 1024 1 6144 2046 5120 OK
shuffle reverse_1st_half 1024 2 7499 3578 6475 OK
shuffle reverse_1st_half 1024 4 7246 3042 6222 OK
shuffle reverse_1st_half 1024 8 6614 2525 5590 OK
shuffle reverse_1st_half 1024 16 6381 2309 5357 OK
shuffle reverse_1st_half 1024 32 6272 2197 5248 OK
shuffle reverse_1st_half 1024 64 6212 2132 5188 OK
shuffle reverse_1st_half 1024 128 6173 2082 5149 OK
shuffle reverse_1st_half 1024 256 6155 2057 5131 OK
shuffle reverse_1st_half 1024 512 6155 2057 5131 OK
shuffle reverse_1st_half 1024 1024 6155 2057 5131 OK
shuffle reverse_2nd_half 1024 1 6144 2046 5120 OK
shuffle reverse_2nd_half 1024 2 7499 3578 6475 OK
shuffle reverse_2nd_half 1024 4 7246 3042 6222 OK
shuffle reverse_2nd_half 1024 8 6614 2525 5590 OK
shuffle reverse_2nd_half 1024 16 6381 2309 5357 OK
shuffle reverse_2nd_half 1024 32 6272 2197 5248 OK
shuffle reverse_2nd_half 1024 64 6212 2132 5188 OK
shuffle reverse_2nd_half 1024 128 6173 2082 5149 OK
shuffle reverse_2nd_half 1024 256 6155 2057 5131 OK
shuffle reverse_2nd_half 1024 512 6155 2057 5131 OK
shuffle reverse_2nd_half 1024 1024 6155 2057 5131 OK
shuffle sort 1024 1 6144 2046 5120 OK
shuffle sort 1024 2 6144 2046 5120 OK
shuffle sort 1024 4 6144 2046 5120 OK
shuffle sort 1024 8 6144 2046 5120 OK
shuffle sort 1024 16 6144 2046 5120 OK
shuffle sort 1024 32 6144 2046 5120 OK
shuffle sort 1024 64 6144 2046 5120 OK
shuffle sort 1024 128 6144 2046 5120 OK
shuffle sort 1024 256 6144 2046 5120 OK
shuffle sort 1024 512 6144 2046 5120 OK
shuffle sort 1024 1024 6144 2046 5120 OK
shuffle dither 1024 1 6246 2250 5222 OK
shuffle dither 1024 2 7569 3488 6545 OK
shuffle dither 1024 4 7336 3100 6312 OK
shuffle dither 1024 8 6719 2692 5695 OK
shuffle dither 1024 16 6483 2490 5459 OK
shuffle dither 1024 32 6371 2387 5347 OK
shuffle dither 1024 64 6314 2331 5290 OK
shuffle dither 1024 128 6276 2287 5252 OK
shuffle dither 1024 256 6257 2262 5233 OK
shuffle dither 1024 512 6257 2262 5233 OK
shuffle dither 1024 1024 6257 2262 5233 OK
shuffle unriffle 1024 1 10241 10240 9217 OK
shuffle unriffle 1024 2 10210 7732 9186 OK
shuffle unriffle 1024 4 10144 7630 9120 OK
shuffle unriffle 1024 8 10198 8872 9174 OK
shuffle unriffle 1024 16 10216 9512 9192 OK
shuffle unriffle 1024 32 10228 9856 9204 OK
shuffle unriffle 1024 64 10232 10036 9208 OK
shuffle unriffle 1024 128 10239 10154 9215 OK
shuffle unriffle 1024 256 10241 10216 9217 OK
shuffle unriffle 1024 512 10241 10216 9217 OK
shuffle unriffle 1024 1024 10241 10216 9217 OK
shuffle unriffle_skewed 1024 1 10241 10240 9217 OK
shuffle unriffle_skewed 1024 2 10210 7732 9186 OK
shuffle unriffle_skewed 1024 4 10144 7630 9120 OK
shuffle unriffle_skewed 1024 8 10198 8872 9174 OK
shuffle unriffle_skewed 1024 16 10216 9512 9192 OK
shuffle unriffle_skewed 1024 32 10228 9856 9204 OK
shuffle unriffle_skewed 1024 64 10232 10036 9208 OK
shuffle unriffle_skewed 1024 128 10239 10154 9215 OK
shuffle unriffle_skewed 1024 256 10241 10216 9217 OK
shuffle unriffle_skewed 1024 512 10241 10216 9217 OK
shuffle unriffle_skewed 1024 1024 10241 10216 9217 OK
sawtooth copy 1025 1 7169 2048 6144 OK
sawtooth copy 1025 2 8962 3071 7937 OK
sawtooth copy 1025 4 9474 3579 8449 OK
sawtooth copy 1025 8 9410 3827 8385 OK
sawtooth copy 1025 16 9090 3939 8065 OK
sawtooth copy 1025 32 8658 3971 7633 OK
sawtooth copy 1025 64 8178 3939 7153 OK
sawtooth copy 1025 128 7678 3827 6653 OK
sawtooth copy 1025 256 7170 3579 6145 OK
sawtooth copy 1025 512 6659 3071 5634 OK
sawtooth copy 1025 1024 6147 2049 5122 OK
sawtooth copy 1025 2048 7169 2048 6144 OK
sawtooth reverse 1025 1 7169 2048 6144 OK
sawtooth reverse 1025 2 8962 3071 7937 OK
sawtooth reverse 1025 4 9730 3835 8705 OK
sawtooth reverse 1025 8 9666 4083 8641 OK
sawtooth reverse 1025 16 9282 4131 8257 OK
sawtooth reverse 1025 32 8786 4099 7761 OK
sawtooth reverse 1025 64 8258 4019 7233 OK
sawtooth reverse 1025 128 7726 3875 6701 OK
sawtooth reverse 1025 256 7198 3607 6173 OK
sawtooth reverse 1025 512 6675 3087 5650 OK
sawtooth reverse 1025 1024 6156 2058 5131 OK
sawtooth reverse 1025 2048 6146 2048 5121 OK
sawtooth reverse_1st_half 1025 1 7169 2048 6144 OK
sawtooth reverse_1st_half 1025 2 8962 3071 7937 OK
sawtooth reverse_1st_half 1025 4 9474 3579 8449 OK
sawtooth reverse_1st_half 1025 8 9410 3827 8385 OK
sawtooth reverse_1st_half 1025 16 9090 3939 8065 OK
sawtooth reverse_1st_half 1025 32 8658 3971 7633 OK
sawtooth reverse_1st_half 1025 64 8178 3939 7153 OK
sawtooth reverse_1st_half 1025 128 7678 3827 6653 OK
sawtooth reverse_1st_half 1025 256 7170 3579 6145 OK
sawtooth reverse_1st_half 1025 512 6659 3071 5634 OK
sawtooth reverse_1st_half 1025 1024 6147 2049 5122 OK
sawtooth reverse_1st_half 1025 2048 7169 2048 6144 OK
sawtooth reverse_2nd_half 1025 1 7169 2048 6144 OK
sawtooth reverse_2nd_half 1025 2 8962 3071 7937 OK
sawtooth reverse_2nd_half 1025 4 9602 3707 8577 OK
sawtooth reverse_2nd_half 1025 8 9538 3955 8513 OK
sawtooth reverse_2nd_half 1025 16 9186 4035 8161 OK
sawtooth reverse_2nd_half 1025 32 8722 4035 7697 OK
sawtooth reverse_2nd_half 1025 64 8218 3979 7193 OK
sawtooth reverse_2nd_half 1025 128 7702 3851 6677 OK
sawtooth reverse_2nd_half 1025 256 7184 3593 6159 OK
sawtooth reverse_2nd_half 1025 512 6667 3079 5642 OK
sawtooth reverse_2nd_half 1025 1024 6668 2059 5643 OK
sawtooth reverse_2nd_half 1025 2048 6658 2049 5633 OK
sawtooth sort 1025 1 7169 2048 6144 OK
sawtooth sort 1025 2 7169 2048 6144 OK
sawtooth sort 1025 4 7169 2048 6144 OK
sawtooth sort 1025 8 7169 2048 6144 OK
sawtooth sort 1025 16 7169 2048 6144 OK
sawtooth sort 1025 32 7169 2048 6144 OK
sawtooth sort 1025 64 7169 2048 6144 OK
sawtooth sort 1025 128 7169 2048 6144 OK
sawtooth sort 1025 256 7169 2048 6144 OK
sawtooth sort 1025 512 7169 2048 6144 OK
sawtooth sort 1025 1024 7169 2048 6144 OK
sawtooth sort 1025 2048 7169 2048 6144 OK
sawtooth dither 1025 1 10525 3934 9500 OK
sawtooth dither 1025 2 10741 3908 9716 OK
sawtooth dither 1025 4 10703 4506 9678 OK
sawtooth dither 1025 8 10188 4542 9163 OK
sawtooth dither 1025 16 9630 4690 8605 OK
sawtooth dither 1025 32 9095 4682 8070 OK
sawtooth dither 1025 64 8568 4658 7543 OK
sawtooth dither 1025 128 8049 4536 7024 OK
sawtooth dither 1025 256 7535 4292 6510 OK
sawtooth dither 1025 512 7020 3783 5995 OK
sawtooth dither 1025 1024 6506 2763 5481 OK
sawtooth dither 1025 2048 7526 2762 6501 OK
sawtooth unriffle 1025 1 7169 2048 6144 OK
sawtooth unriffle 1025 2 7169 2048 6144 OK
sawtooth unriffle 1025 4 7416 2060 6391 OK
sawtooth unriffle 1025 8 7537 2076 6512 OK
sawtooth unriffle 1025 16 7724 2106 6699 OK
sawtooth unriffle 1025 32 8009 2174 6984 OK
sawtooth unriffle 1025 64 8376 2336 7351 OK
sawtooth unriffle 1025 128 8801 2720 7776 OK
sawtooth unriffle 1025 256 9264 3614 8239 OK
sawtooth unriffle 1025 512 9751 5658 8726 OK
sawtooth unriffle 1025 1024 10244 10234 9219 OK
sawtooth unriffle 1025 2048 10243 10233 9218 OK
sawtooth unriffle_skewed 1025 1 7169 2048 6144 OK
sawtooth unriffle_skewed 1025 2 6658 2049 5633 OK
sawtooth unriffle_skewed 1025 4 6658 2051 5633 OK
sawtooth unriffle_skewed 1025 8 6914 2059 5889 OK
sawtooth unriffle_skewed 1025 16 7298 2083 6273 OK
sawtooth unriffle_skewed 1025 32 7746 2147 6721 OK
sawtooth unriffle_skewed 1025 64 8226 2307 7201 OK
sawtooth unriffle_skewed 1025 128 8722 2691 7697 OK
sawtooth unriffle_skewed 1025 256 9226 3587 8201 OK
sawtooth unriffle_skewed 1025 512 9734 5635 8709 OK
sawtooth unriffle_skewed 1025 1024 10244 10243 9219 OK
sawtooth unriffle_skewed 1025 2048 11266 10242 10241 OK
rand copy 1025 1 7169 2048 6144 OK
rand copy 1025 2 8689 2695 7664 OK
rand copy 1025 4 9463 3255 8438 OK
rand copy 1025 8 9714 3799 8689 OK
rand copy 1025 16 9904 4391 8879 OK
rand copy 1025 32 10453 4834 9428 OK
rand copy 1025 64 10692 5187 9667 OK
rand copy 1025 128 10347 5583 9322 OK
rand copy 1025 256 10695 5859 9670 OK
rand copy 1025 512 10824 6046 9799 OK
rand copy 1025 1024 10910 6044 9885 OK
rand copy 1025 2048 10945 6116 9920 OK
rand reverse 1025 1 7169 2048 6144 OK
rand reverse 1025 2 9242 2700 8217 OK
rand reverse 1025 4 10181 3253 9156 OK
rand reverse 1025 8 10669 3834 9644 OK
rand reverse 1025 16 10852 4384 9827 OK
rand reverse 1025 32 10420 4829 9395 OK
rand reverse 1025 64 10209 5273 9184 OK
rand reverse 1025 128 10093 5621 9068 OK
rand reverse 1025 256 10561 5895 9536 OK
rand reverse 1025 512 10245 6070 9220 OK
rand reverse 1025 1024 10117 6092 9092 OK
rand reverse 1025 2048 10576 6149 9551 OK
rand reverse_1st_half 1025 1 7169 2048 6144 OK
rand reverse_1st_half 1025 2 8641 2696 7616 OK
rand reverse_1st_half 1025 4 9423 3232 8398 OK
rand reverse_1st_half 1025 8 9720 3803 8695 OK
rand reverse_1st_half 1025 16 9895 4382 8870 OK
rand reverse_1st_half 1025 32 10452 4805 9427 OK
rand reverse_1st_half 1025 64 10691 5203 9666 OK
rand reverse_1st_half 1025 128 10338 5577 9313 OK
rand reverse_1st_half 1025 256 10695 5837 9670 OK
rand reverse_1st_half 1025 512 10821 6039 9796 OK
rand reverse_1st_half 1025 1024 10908 6047 9883 OK
rand reverse_1st_half 1025 2048 10943 6132 9918 OK
rand reverse_2nd_half 1025 1 7169 2048 6144 OK
rand reverse_2nd_half 1025 2 8743 2700 7718 OK
rand reverse_2nd_half 1025 4 9948 3258 8923 OK
rand reverse_2nd_half 1025 8 9997 3823 8972 OK
rand reverse_2nd_half 1025 16 10028 4401 9003 OK
rand reverse_2nd_half 1025 32 10516 4841 9491 OK
rand reverse_2nd_half 1025 64 10234 5237 9209 OK
rand reverse_2nd_half 1025 128 10619 5628 9594 OK
rand reverse_2nd_half 1025 256 10317 5883 9292 OK
rand reverse_2nd_half 1025 512 10642 6043 9617 OK
rand reverse_2nd_half 1025 1024 10826 6063 9801 OK
rand reverse_2nd_half 1025 2048 10417 6098 9392 OK
rand sort 1025 1 7169 2048 6144 OK
rand sort 1025 2 7169 2048 6144 OK
rand sort 1025 4 7169 2048 6144 OK
rand sort 1025 8 7169 2048 6144 OK
rand sort 1025 16 7169 2048 6144 OK
rand sort 1025 32 7169 2048 6144 OK
rand sort 1025 64 7169 2048 6144 OK
rand sort 1025 128 7169 2048 6144 OK
rand sort 1025 256 7169 2048 6144 OK
rand sort 1025 512 7169 2048 6144 OK
rand sort 1025 1024 7169 2048 6144 OK
rand sort 1025 2048 7169 2048 6144 OK
rand dither 1025 1 10525 3934 9500 OK
rand dither 1025 2 10669 3640 9644 OK
rand dither 1025 4 10590 3787 9565 OK
rand dither 1025 8 10285 4057 9260 OK
rand dither 1025 16 10163 4477 9138 OK
rand dither 1025 32 10586 4892 9561 OK
rand dither 1025 64 10743 5296 9718 OK
rand dither 1025 128 10372 5619 9347 OK
rand dither 1025 256 10690 5898 9665 OK
rand dither 1025 512 10823 6009 9798 OK
rand dither 1025 1024 10911 6062 9886 OK
rand dither 1025 2048 10947 6123 9922 OK
rand unriffle 1025 1 7169 2048 6144 OK
rand unriffle 1025 2 8718 2689 7693 OK
rand unriffle 1025 4 9980 3275 8955 OK
rand unriffle 1025 8 10033 3850 9008 OK
rand unriffle 1025 16 10015 4403 8990 OK
rand unriffle 1025 32 10035 4896 9010 OK
rand unriffle 1025 64 10524 5303 9499 OK
rand unriffle 1025 128 10764 5624 9739 OK
rand unriffle 1025 256 10867 5945 9842 OK
rand unriffle 1025 512 10927 6090 9902 OK
rand unriffle 1025 1024 10923 6102 9898 OK
rand unriffle 1025 2048 10960 6121 9935 OK
rand unriffle_skewed 1025 1 7169 2048 6144 OK
rand unriffle_skewed 1025 2 8684 2690 7659 OK
rand unriffle_skewed 1025 4 9452 3275 8427 OK
rand unriffle_skewed 1025 8 9737 3854 8712 OK
rand unriffle_skewed 1025 16 9871 4403 8846 OK
rand unriffle_skewed 1025 32 10468 4901 9443 OK
rand unriffle_skewed 1025 64 10738 5301 9713 OK
rand unriffle_skewed 1025 128 10379 5641 9354 OK
rand unriffle_skewed 1025 256 10677 5959 9652 OK
rand unriffle_skewed 1025 512 10841 6081 9816 OK
rand unriffle_skewed 1025 1024 10878 6103 9853 OK
rand unriffle_skewed 1025 2048 10931 6136 9906 OK
stagger copy 1025 1 8182 3079 7157 OK
stagger copy 1025 2 8343 3423 7318 OK
stagger copy 1025 4 8785 3704 7760 OK
stagger copy 1025 8 9198 3887 8173 OK
stagger copy 1025 16 9655 5313 8630 OK
stagger copy 1025 32 10049 4943 9024 OK
stagger copy 1025 64 10435 6344 9410 OK
stagger copy 1025 128 10614 6238 9589 OK
stagger copy 1025 256 10367 5030 9342 OK
stagger copy 1025 512 8962 3071 7937 OK
stagger copy 1025 1024 7169 2048 6144 OK
stagger copy 1025 2048 6156 2058 5131 OK
stagger reverse 1025 1 6657 3070 5632 OK
stagger reverse 1025 2 7337 3426 6312 OK
stagger reverse 1025 4 7784 3698 6759 OK
stagger reverse 1025 8 8230 3902 7205 OK
stagger reverse 1025 16 8667 5306 7642 OK
stagger reverse 1025 32 9057 4938 8032 OK
stagger reverse 1025 64 9524 6761 8499 OK
stagger reverse 1025 128 9794 6278 8769 OK
stagger reverse 1025 256 9683 5114 8658 OK
stagger reverse 1025 512 8450 3070 7425 OK
stagger reverse 1025 1024 7169 2048 6144 OK
stagger reverse 1025 2048 6146 2048 5121 OK
stagger reverse_1st_half 1025 1 8182 3079 7157 OK
stagger reverse_1st_half 1025 2 8343 3423 7318 OK
stagger reverse_1st_half 1025 4 8785 3701 7760 OK
stagger reverse_1st_half 1025 8 9198 3887 8173 OK
stagger reverse_1st_half 1025 16 9655 5313 8630 OK
stagger reverse_1st_half 1025 32 10049 4943 9024 OK
stagger reverse_1st_half 1025 64 10436 6546 9411 OK
stagger reverse_1st_half 1025 128 10614 6238 9589 OK
stagger reverse_1st_half 1025 256 10367 5030 9342 OK
stagger reverse_1st_half 1025 512 8962 3071 7937 OK
stagger reverse_1st_half 1025 1024 7169 2048 6144 OK
stagger reverse_1st_half 1025 2048 6156 2058 5131 OK
stagger reverse_2nd_half 1025 1 7680 3070 6655 OK
stagger reverse_2nd_half 1025 2 7840 3425 6815 OK
stagger reverse_2nd_half 1025 4 8285 3702 7260 OK
stagger reverse_2nd_half 1025 8 8714 3895 7689 OK
stagger reverse_2nd_half 1025 16 9161 5313 8136 OK
stagger reverse_2nd_half 1025 32 9553 4943 8528 OK
stagger reverse_2nd_half 1025 64 9982 6555 8957 OK
stagger reverse_2nd_half 1025 128 10204 6258 9179 OK
stagger reverse_2nd_half 1025 256 10025 5072 9000 OK
stagger reverse_2nd_half 1025 512 8706 3071 7681 OK
stagger reverse_2nd_half 1025 1024 7169 2048 6144 OK
stagger reverse_2nd_half 1025 2048 6668 2058 5643 OK
stagger sort 1025 1 7169 2048 6144 OK
stagger sort 1025 2 7169 2048 6144 OK
stagger sort 1025 4 7169 2048 6144 OK
stagger sort 1025 8 7169 2048 6144 OK
stagger sort 1025 16 7169 2048 6144 OK
stagger sort 1025 32 7169 2048 6144 OK
stagger sort 1025 64 7169 2048 6144 OK
stagger sort 1025 128 7169 2048 6144 OK
stagger sort 1025 256 7169 2048 6144 OK
stagger sort 1025 512 7169 2048 6144 OK
stagger sort 1025 1024 7169 2048 6144 OK
stagger sort 1025 2048 7169 2048 6144 OK
stagger dither 1025 1 8281 2872 7256 OK
stagger dither 1025 2 8446 3353 7421 OK
stagger dither 1025 4 8785 3704 7760 OK
stagger dither 1025 8 9202 4023 8177 OK
stagger dither 1025 16 9657 5529 8632 OK
stagger dither 1025 32 10050 4221 9025 OK
stagger dither 1025 64 10435 6344 9410 OK
stagger dither 1025 128 10615 5581 9590 OK
stagger dither 1025 256 10368 4757 9343 OK
stagger dither 1025 512 9142 3581 8117 OK
stagger dither 1025 1024 10525 3934 9500 OK
stagger dither 1025 2048 6744 2516 5719 OK
stagger unriffle 1025 1 9743 5644 8718 OK
stagger unriffle 1025 2 10237 9540 9212 OK
stagger unriffle 1025 4 10245 9198 9220 OK
stagger unriffle 1025 8 10238 9293 9213 OK
stagger unriffle 1025 16 10254 8894 9229 OK
stagger unriffle 1025 32 10262 8172 9237 OK
stagger unriffle 1025 64 10304 9066 9279 OK
stagger unriffle 1025 128 10351 9199 9326 OK
stagger unriffle 1025 256 10413 9543 9388 OK
stagger unriffle 1025 512 10244 9212 9219 OK
stagger unriffle 1025 1024 7169 2048 6144 OK
stagger unriffle 1025 2048 11266 10233 10241 OK
stagger unriffle_skewed 1025 1 10764 5644 9739 OK
stagger unriffle_skewed 1025 2 11264 9561 10239 OK
stagger unriffle_skewed 1025 4 11265 9224 10240 OK
stagger unriffle_skewed 1025 8 11252 9333 10227 OK
stagger unriffle_skewed 1025 16 11247 8922 10222 OK
stagger unriffle_skewed 1025 32 11222 8200 10197 OK
stagger unriffle_skewed 1025 64 11199 9099 10174 OK
stagger unriffle_skewed 1025 128 11119 9227 10094 OK
stagger unriffle_skewed 1025 256 10925 9559 9900 OK
stagger unriffle_skewed 1025 512 10244 9221 9219 OK
stagger unriffle_skewed 1025 1024 7169 2048 6144 OK
stagger unriffle_skewed 1025 2048 10244 10243 9219 OK
plateau copy 1025 1 7169 2048 6144 OK
plateau copy 1025 2 7169 2048 6144 OK
plateau copy 1025 4 7169 2048 6144 OK
plateau copy 1025 8 7169 2048 6144 OK
plateau copy 1025 16 7169 2048 6144 OK
plateau copy 1025 32 7169 2048 6144 OK
plateau copy 1025 64 7169 2048 6144 OK
plateau copy 1025 128 7169 2048 6144 OK
plateau copy 1025 256 7169 2048 6144 OK
plateau copy 1025 512 7169 2048 6144 OK
plateau copy 1025 1024 7169 2048 6144 OK
plateau copy 1025 2048 7169 2048 6144 OK
plateau reverse 1025 1 6146 2048 5121 OK
plateau reverse 1025 2 6155 2057 5130 OK
plateau reverse 1025 4 6170 2056 5145 OK
plateau reverse 1025 8 6195 2055 5170 OK
plateau reverse 1025 16 6236 2054 5211 OK
plateau reverse 1025 32 6301 2053 5276 OK
plateau reverse 1025 64 6398 2052 5373 OK
plateau reverse 1025 128 6527 2051 5502 OK
plateau reverse 1025 256 6656 2050 5631 OK
plateau reverse 1025 512 6657 2049 5632 OK
plateau reverse 1025 1024 6146 2048 5121 OK
plateau reverse 1025 2048 6146 2048 5121 OK
plateau reverse_1st_half 1025 1 7177 2056 6152 OK
plateau reverse_1st_half 1025 2 7183 2055 6158 OK
plateau reverse_1st_half 1025 4 7193 2054 6168 OK
plateau reverse_1st_half 1025 8 7209 2053 6184 OK
plateau reverse_1st_half 1025 16 7233 2052 6208 OK
plateau reverse_1st_half 1025 32 7265 2051 6240 OK
plateau reverse_1st_half 1025 64 7297 2050 6272 OK
plateau reverse_1st_half 1025 128 7297 2049 6272 OK
plateau reverse_1st_half 1025 256 7169 2048 6144 OK
plateau reverse_1st_half 1025 512 7169 2048 6144 OK
plateau reverse_1st_half 1025 1024 7169 2048 6144 OK
plateau reverse_1st_half 1025 2048 7169 2048 6144 OK
plateau reverse_2nd_half 1025 1 7169 2048 6144 OK
plateau reverse_2nd_half 1025 2 7169 2048 6144 OK
plateau reverse_2nd_half 1025 4 7169 2048 6144 OK
plateau reverse_2nd_half 1025 8 7169 2048 6144 OK
plateau reverse_2nd_half 1025 16 7169 2048 6144 OK
plateau reverse_2nd_half 1025 32 7169 2048 6144 OK
plateau reverse_2nd_half 1025 64 7169 2048 6144 OK
plateau reverse_2nd_half 1025 128 7169 2048 6144 OK
plateau reverse_2nd_half 1025 256 7169 2048 6144 OK
plateau reverse_2nd_half 1025 512 7169 2048 6144 OK
plateau reverse_2nd_half 1025 1024 6658 2049 5633 OK
plateau reverse_2nd_half 1025 2048 6658 2049 5633 OK
plateau sort 1025 1 7169 2048 6144 OK
plateau sort 1025 2 7169 2048 6144 OK
plateau sort 1025 4 7169 2048 6144 OK
plateau sort 1025 8 7169 2048 6144 OK
plateau sort 1025 16 7169 2048 6144 OK
plateau sort 1025 32 7169 2048 6144 OK
plateau sort 1025 64 7169 2048 6144 OK
plateau sort 1025 128 7169 2048 6144 OK
plateau sort 1025 256 7169 2048 6144 OK
plateau sort 1025 512 7169 2048 6144 OK
plateau sort 1025 1024 7169 2048 6144 OK
plateau sort 1025 2048 7169 2048 6144 OK
plateau dither 1025 1 10525 3934 9500 OK
plateau dither 1025 2 10525 3932 9500 OK
plateau dither 1025 4 10524 3928 9499 OK
plateau dither 1025 8 10519 3925 9494 OK
plateau dither 1025 16 10509 3914 9484 OK
plateau dither 1025 32 10475 3897 9450 OK
plateau dither 1025 64 10413 3860 9388 OK
plateau dither 1025 128 10226 3787 9201 OK
plateau dither 1025 256 9877 3638 8852 OK
plateau dither 1025 512 8923 3345 7898 OK
plateau dither 1025 1024 7526 2762 6501 OK
plateau dither 1025 2048 7526 2762 6501 OK
plateau unriffle 1025 1 7169 2048 6144 OK
plateau unriffle 1025 2 6147 2049 5122 OK
plateau unriffle 1025 4 6150 2054 5125 OK
plateau unriffle 1025 8 6158 2068 5133 OK
plateau unriffle 1025 16 6178 2105 5153 OK
plateau unriffle 1025 32 6226 2197 5201 OK
plateau unriffle 1025 64 6338 2416 5313 OK
plateau unriffle 1025 128 6594 2922 5569 OK
plateau unriffle 1025 256 7170 4067 6145 OK
plateau unriffle 1025 512 8442 6611 7417 OK
plateau unriffle 1025 1024 10243 10233 9218 OK
plateau unriffle 1025 2048 10243 10233 9218 OK
plateau unriffle_skewed 1025 1 7169 2048 6144 OK
plateau unriffle_skewed 1025 2 7170 2050 6145 OK
plateau unriffle_skewed 1025 4 7173 2056 6148 OK
plateau unriffle_skewed 1025 8 7181 2072 6156 OK
plateau unriffle_skewed 1025 16 7201 2112 6176 OK
plateau unriffle_skewed 1025 32 7249 2208 6224 OK
plateau unriffle_skewed 1025 64 7361 2432 6336 OK
plateau unriffle_skewed 1025 128 7617 2944 6592 OK
plateau unriffle_skewed 1025 256 8193 4096 7168 OK
plateau unriffle_skewed 1025 512 9473 6656 8448 OK
plateau unriffle_skewed 1025 1024 11266 10242 10241 OK
plateau unriffle_skewed 1025 2048 11266 10242 10241 OK
shuffle copy 1025 1 7169 2048 6144 OK
shuffle copy 1025 2 8482 3581 7457 OK
shuffle copy 1025 4 7749 3045 6724 OK
shuffle copy 1025 8 6827 2528 5802 OK
shuffle copy 1025 16 6490 2312 5465 OK
shuffle copy 1025 32 7297 2199 6272 OK
shuffle copy 1025 64 7237 2134 6212 OK
shuffle copy 1025 128 7198 2084 6173 OK
shuffle copy 1025 256 7180 2059 6155 OK
shuffle copy 1025 512 7180 2059 6155 OK
shuffle copy 1025 1024 7180 2059 6155 OK
shuffle copy 1025 2048 7174 2054 6149 OK
shuffle reverse 1025 1 6146 2048 5121 OK
shuffle reverse 1025 2 7508 3586 6483 OK
shuffle reverse 1025 4 7244 3021 6219 OK
shuffle reverse 1025 8 6623 2522 5598 OK
shuffle reverse 1025 16 6386 2313 5361 OK
shuffle reverse 1025 32 6265 2190 5240 OK
shuffle reverse 1025 64 6210 2129 5185 OK
shuffle reverse 1025 128 6173 2081 5148 OK
shuffle reverse 1025 256 6155 2056 5130 OK
shuffle reverse 1025 512 6155 2056 5130 OK
shuffle reverse 1025 1024 6155 2056 5130 OK
shuffle reverse 1025 2048 6150 2052 5125 OK
shuffle reverse_1st_half 1025 1 7169 2048 6144 OK
shuffle reverse_1st_half 1025 2 8482 3581 7457 OK
shuffle reverse_1st_half 1025 4 7749 3045 6724 OK
shuffle reverse_1st_half 1025 8 6827 2528 5802 OK
shuffle reverse_1st_half 1025 16 6490 2312 5465 OK
shuffle reverse_1st_half 1025 32 7297 2199 6272 OK
shuffle reverse_1st_half 1025 64 7237 2134 6212 OK
shuffle reverse_1st_half 1025 128 7198 2084 6173 OK
shuffle reverse_1st_half 1025 256 7180 2059 6155 OK
shuffle reverse_1st_half 1025 512 7180 2059 6155 OK
shuffle reverse_1st_half 1025 1024 7180 2059 6155 OK
shuffle reverse_1st_half 1025 2048 7174 2054 6149 OK
shuffle reverse_2nd_half 1025 1 6658 2049 5633 OK
shuffle reverse_2nd_half 1025 2 7995 3578 6970 OK
shuffle reverse_2nd_half 1025 4 7865 3026 6840 OK
shuffle reverse_2nd_half 1025 8 7185 2532 6160 OK
shuffle reverse_2nd_half 1025 16 6926 2314 5901 OK
shuffle reverse_2nd_half 1025 32 6796 2198 5771 OK
shuffle reverse_2nd_half 1025 64 6733 2133 5708 OK
shuffle reverse_2nd_half 1025 128 6689 2085 5664 OK
shuffle reverse_2nd_half 1025 256 6669 2060 5644 OK
shuffle reverse_2nd_half 1025 512 6669 2060 5644 OK
shuffle reverse_2nd_half 1025 1024 6669 2060 5644 OK
shuffle reverse_2nd_half 1025 2048 6663 2055 5638 OK
shuffle sort 1025 1 7169 2048 6144 OK
shuffle sort 1025 2 7169 2048 6144 OK
shuffle sort 1025 4 7169 2048 6144 OK
shuffle sort 1025 8 7169 2048 6144 OK
shuffle sort 1025 16 7169 2048 6144 OK
shuffle sort 1025 32 7169 2048 6144 OK
shuffle sort 1025 64 7169 2048 6144 OK
shuffle sort 1025 128 7169 2048 6144 OK
shuffle sort 1025 256 7169 2048 6144 OK
shuffle sort 1025 512 7169 2048 6144 OK
shuffle sort 1025 1024 7169 2048 6144 OK
shuffle sort 1025 2048 7169 2048 6144 OK
shuffle dither 1025 1 7271 2252 6246 OK
shuffle dither 1025 2 8553 3491 7528 OK
shuffle dither 1025 4 7841 3103 6816 OK
shuffle dither 1025 8 6933 2695 5908 OK
shuffle dither 1025 16 6593 2493 5568 OK
shuffle dither 1025 32 7396 2389 6371 OK
shuffle dither 1025 64 7339 2333 6314 OK
shuffle dither 1025 128 7301 2289 6276 OK
shuffle dither 1025 256 7282 2264 6257 OK
shuffle dither 1025 512 7282 2264 6257 OK
shuffle dither 1025 1024 7282 2264 6257 OK
shuffle dither 1025 2048 7276 2259 6251 OK
shuffle unriffle 1025 1 10243 10233 9218 OK
shuffle unriffle 1025 2 10216 7736 9191 OK
shuffle unriffle 1025 4 10146 7630 9121 OK
shuffle unriffle 1025 8 10201 8866 9176 OK
shuffle unriffle 1025 16 10219 9506 9194 OK
shuffle unriffle 1025 32 10231 9854 9206 OK
shuffle unriffle 1025 64 10235 10030 9210 OK
shuffle unriffle 1025 128 10242 10148 9217 OK
shuffle unriffle 1025 256 10244 10209 9219 OK
shuffle unriffle 1025 512 10244 10209 9219 OK
shuffle unriffle 1025 1024 10244 10209 9219 OK
shuffle unriffle 1025 2048 10244 10219 9219 OK
shuffle unriffle_skewed 1025 1 11266 10242 10241 OK
shuffle unriffle_skewed 1025 2 11193 7735 10168 OK
shuffle unriffle_skewed 1025 4 10647 7633 9622 OK
shuffle unriffle_skewed 1025 8 10411 8875 9386 OK
shuffle unriffle_skewed 1025 16 10325 9515 9300 OK
shuffle unriffle_skewed 1025 32 11253 9858 10228 OK
shuffle unriffle_skewed 1025 64 11257 10038 10232 OK
shuffle unriffle_skewed 1025 128 11264 10156 10239 OK
shuffle unriffle_skewed 1025 256 11266 10218 10241 OK
shuffle unriffle_skewed 1025 512 11266 10218 10241 OK
shuffle unriffle_skewed 1025 1024 11266 10218 10241 OK
shuffle unriffle_skewed 1025 2048 11266 10228 10241 OK
ok 1 - DEFINE_LIST_SORT_DEBUG
# passed all 1 test(s)
1..1
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0201-gettext-fallbacks.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0201-gettext-fallbacks/.git/
# 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_cmp expect actual &&
printf "test more words" >expect &&
gettext "test more words" >actual &&
test_cmp 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_cmp expect actual &&
printf "test more words" >expect &&
eval_gettext "test more words" >actual &&
test_cmp 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_cmp 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_cmp 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_cmp 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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0203-gettext-setlocale-sanity.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0203-gettext-setlocale-sanity/.git/
# lib-gettext: No is_IS UTF-8 locale available
# lib-gettext: No is_IS ISO-8859-1 locale available
expecting success of 0203.1 'git show a ISO-8859-1 commit under C locale':
. "$TEST_DIRECTORY"/t3901/8859-1.txt &&
test_commit "iso-c-commit" iso-under-c &&
git show >out 2>err &&
test_must_be_empty err &&
grep -q "iso-c-commit" out
Warning: commit message did not conform to UTF-8.
You may want to amend it after fixing the message, or set the config
variable i18n.commitEncoding to the encoding your project uses.
[master (root-commit) f2030b4] iso-c-commit
Author: Áéí óú <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 iso-under-c
ok 1 - git show a ISO-8859-1 commit under C locale
ok 2 # skip git show a ISO-8859-1 commit under a UTF-8 locale (missing GETTEXT_LOCALE)
# passed all 2 test(s)
1..2
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0110-urlmatch-normalization.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0110-urlmatch-normalization/.git/
expecting success of 0110.1 'url scheme':
! test-tool urlmatch-normalization "" &&
! test-tool urlmatch-normalization "_" &&
! test-tool urlmatch-normalization "scheme" &&
! test-tool urlmatch-normalization "scheme:" &&
! test-tool urlmatch-normalization "scheme:/" &&
! test-tool urlmatch-normalization "scheme://" &&
! test-tool urlmatch-normalization "file" &&
! test-tool urlmatch-normalization "file:" &&
! test-tool urlmatch-normalization "file:/" &&
test-tool urlmatch-normalization "file://" &&
! test-tool urlmatch-normalization "://acme.co" &&
! test-tool urlmatch-normalization "x_test://acme.co" &&
! test-tool urlmatch-normalization "-test://acme.co" &&
! test-tool urlmatch-normalization "0test://acme.co" &&
! test-tool urlmatch-normalization "+test://acme.co" &&
! test-tool urlmatch-normalization ".test://acme.co" &&
! test-tool urlmatch-normalization "schem%6e://" &&
test-tool urlmatch-normalization "x-Test+v1.0://acme.co" &&
test "$(test-tool urlmatch-normalization -p "AbCdeF://x.Y")" = "abcdef://x.y/"
ok 1 - url scheme
expecting success of 0110.2 'url authority':
! test-tool urlmatch-normalization "scheme://user:pass@" &&
! test-tool urlmatch-normalization "scheme://?" &&
! test-tool urlmatch-normalization "scheme://#" &&
! test-tool urlmatch-normalization "scheme:///" &&
! test-tool urlmatch-normalization "scheme://:" &&
! test-tool urlmatch-normalization "scheme://:555" &&
test-tool urlmatch-normalization "file://user:pass@" &&
test-tool urlmatch-normalization "file://?" &&
test-tool urlmatch-normalization "file://#" &&
test-tool urlmatch-normalization "file:///" &&
test-tool urlmatch-normalization "file://:" &&
! test-tool urlmatch-normalization "file://:555" &&
test-tool urlmatch-normalization "scheme://user:pass@host" &&
test-tool urlmatch-normalization "scheme://@host" &&
test-tool urlmatch-normalization "scheme://%00@host" &&
! test-tool urlmatch-normalization "scheme://%%@host" &&
test-tool urlmatch-normalization "scheme://host_" &&
test-tool urlmatch-normalization "scheme://user:pass@host/" &&
test-tool urlmatch-normalization "scheme://@host/" &&
test-tool urlmatch-normalization "scheme://host/" &&
test-tool urlmatch-normalization "scheme://host?x" &&
test-tool urlmatch-normalization "scheme://host#x" &&
test-tool urlmatch-normalization "scheme://host/@" &&
test-tool urlmatch-normalization "scheme://host?@x" &&
test-tool urlmatch-normalization "scheme://host#@x" &&
test-tool urlmatch-normalization "scheme://[::1]" &&
test-tool urlmatch-normalization "scheme://[::1]/" &&
! test-tool urlmatch-normalization "scheme://hos%41/" &&
test-tool urlmatch-normalization "scheme://[invalid....:/" &&
test-tool urlmatch-normalization "scheme://invalid....:]/" &&
! test-tool urlmatch-normalization "scheme://invalid....:[/" &&
! test-tool urlmatch-normalization "scheme://invalid....:["
ok 2 - url authority
expecting success of 0110.3 'url port checks':
test-tool urlmatch-normalization "xyz://q@some.host:" &&
test-tool urlmatch-normalization "xyz://q@some.host:456/" &&
! test-tool urlmatch-normalization "xyz://q@some.host:0" &&
! test-tool urlmatch-normalization "xyz://q@some.host:0000000" &&
test-tool urlmatch-normalization "xyz://q@some.host:0000001?" &&
test-tool urlmatch-normalization "xyz://q@some.host:065535#" &&
test-tool urlmatch-normalization "xyz://q@some.host:65535" &&
! test-tool urlmatch-normalization "xyz://q@some.host:65536" &&
! test-tool urlmatch-normalization "xyz://q@some.host:99999" &&
! test-tool urlmatch-normalization "xyz://q@some.host:100000" &&
! test-tool urlmatch-normalization "xyz://q@some.host:100001" &&
test-tool urlmatch-normalization "http://q@some.host:80" &&
test-tool urlmatch-normalization "https://q@some.host:443" &&
test-tool urlmatch-normalization "http://q@some.host:80/" &&
test-tool urlmatch-normalization "https://q@some.host:443?" &&
! test-tool urlmatch-normalization "http://q@:8008" &&
! test-tool urlmatch-normalization "http://:8080" &&
! test-tool urlmatch-normalization "http://:" &&
test-tool urlmatch-normalization "xyz://q@some.host:456/" &&
test-tool urlmatch-normalization "xyz://[::1]:456/" &&
test-tool urlmatch-normalization "xyz://[::1]:/" &&
! test-tool urlmatch-normalization "xyz://[::1]:000/" &&
! test-tool urlmatch-normalization "xyz://[::1]:0%300/" &&
! test-tool urlmatch-normalization "xyz://[::1]:0x80/" &&
! test-tool urlmatch-normalization "xyz://[::1]:4294967297/" &&
! test-tool urlmatch-normalization "xyz://[::1]:030f/"
ok 3 - url port checks
expecting success of 0110.4 'url port normalization':
test "$(test-tool urlmatch-normalization -p "http://x:800")" = "http://x:800/" &&
test "$(test-tool urlmatch-normalization -p "http://x:0800")" = "http://x:800/" &&
test "$(test-tool urlmatch-normalization -p "http://x:00000800")" = "http://x:800/" &&
test "$(test-tool urlmatch-normalization -p "http://x:065535")" = "http://x:65535/" &&
test "$(test-tool urlmatch-normalization -p "http://x:1")" = "http://x:1/" &&
test "$(test-tool urlmatch-normalization -p "http://x:80")" = "http://x/" &&
test "$(test-tool urlmatch-normalization -p "http://x:080")" = "http://x/" &&
test "$(test-tool urlmatch-normalization -p "http://x:000000080")" = "http://x/" &&
test "$(test-tool urlmatch-normalization -p "https://x:443")" = "https://x/" &&
test "$(test-tool urlmatch-normalization -p "https://x:0443")" = "https://x/" &&
test "$(test-tool urlmatch-normalization -p "https://x:000000443")" = "https://x/"
ok 4 - url port normalization
expecting success of 0110.5 'url general escapes':
! test-tool urlmatch-normalization "http://x.y?%fg" &&
test "$(test-tool urlmatch-normalization -p "X://W/%7e%41^%3a")" = "x://w/~A%5E%3A" &&
test "$(test-tool urlmatch-normalization -p "X://W/:/?#[]@")" = "x://w/:/?#[]@" &&
test "$(test-tool urlmatch-normalization -p "X://W/$&()*+,;=")" = "x://w/$&()*+,;=" &&
test "$(test-tool urlmatch-normalization -p "X://W/'")" = "x://w/'" &&
test "$(test-tool urlmatch-normalization -p "X://W?!")" = "x://w/?!"
ok 5 - url general escapes
expecting success of 0110.6 'url high-bit escapes':
test "$(test-tool urlmatch-normalization -p "$(cat "$tu-1")")" = "x://q/%01%02%03%04%05%06%07%08%0E%0F%10%11%12" &&
test "$(test-tool urlmatch-normalization -p "$(cat "$tu-2")")" = "x://q/%13%14%15%16%17%18%19%1B%1C%1D%1E%1F%7F" &&
test "$(test-tool urlmatch-normalization -p "$(cat "$tu-3")")" = "x://q/%80%81%82%83%84%85%86%87%88%89%8A%8B%8C%8D%8E%8F" &&
test "$(test-tool urlmatch-normalization -p "$(cat "$tu-4")")" = "x://q/%90%91%92%93%94%95%96%97%98%99%9A%9B%9C%9D%9E%9F" &&
test "$(test-tool urlmatch-normalization -p "$(cat "$tu-5")")" = "x://q/%A0%A1%A2%A3%A4%A5%A6%A7%A8%A9%AA%AB%AC%AD%AE%AF" &&
test "$(test-tool urlmatch-normalization -p "$(cat "$tu-6")")" = "x://q/%B0%B1%B2%B3%B4%B5%B6%B7%B8%B9%BA%BB%BC%BD%BE%BF" &&
test "$(test-tool urlmatch-normalization -p "$(cat "$tu-7")")" = "x://q/%C0%C1%C2%C3%C4%C5%C6%C7%C8%C9%CA%CB%CC%CD%CE%CF" &&
test "$(test-tool urlmatch-normalization -p "$(cat "$tu-8")")" = "x://q/%D0%D1%D2%D3%D4%D5%D6%D7%D8%D9%DA%DB%DC%DD%DE%DF" &&
test "$(test-tool urlmatch-normalization -p "$(cat "$tu-9")")" = "x://q/%E0%E1%E2%E3%E4%E5%E6%E7%E8%E9%EA%EB%EC%ED%EE%EF" &&
test "$(test-tool urlmatch-normalization -p "$(cat "$tu-10")")" = "x://q/%F0%F1%F2%F3%F4%F5%F6%F7%F8%F9%FA%FB%FC%FD%FE%FF"
ok 6 - url high-bit escapes
expecting success of 0110.7 'url utf-8 escapes':
test "$(test-tool urlmatch-normalization -p "$(cat "$tu-11")")" = "x://q/%C2%80%DF%BF%E0%A0%80%EF%BF%BD%F0%90%80%80%F0%AF%BF%BD"
ok 7 - url utf-8 escapes
expecting success of 0110.8 'url username/password escapes':
test "$(test-tool urlmatch-normalization -p "x://%41%62(^):%70+d@foo")" = "x://Ab(%5E):p+d@foo/"
ok 8 - url username/password escapes
expecting success of 0110.9 'url normalized lengths':
test "$(test-tool urlmatch-normalization -l "Http://%4d%65:%4d^%70@The.Host")" = 25 &&
test "$(test-tool urlmatch-normalization -l "http://%41:%42@x.y/%61/")" = 17 &&
test "$(test-tool urlmatch-normalization -l "http://@x.y/^")" = 15
ok 9 - url normalized lengths
expecting success of 0110.10 'url . and .. segments':
test "$(test-tool urlmatch-normalization -p "x://y/.")" = "x://y/" &&
test "$(test-tool urlmatch-normalization -p "x://y/./")" = "x://y/" &&
test "$(test-tool urlmatch-normalization -p "x://y/a/.")" = "x://y/a" &&
test "$(test-tool urlmatch-normalization -p "x://y/a/./")" = "x://y/a/" &&
test "$(test-tool urlmatch-normalization -p "x://y/.?")" = "x://y/?" &&
test "$(test-tool urlmatch-normalization -p "x://y/./?")" = "x://y/?" &&
test "$(test-tool urlmatch-normalization -p "x://y/a/.?")" = "x://y/a?" &&
test "$(test-tool urlmatch-normalization -p "x://y/a/./?")" = "x://y/a/?" &&
test "$(test-tool urlmatch-normalization -p "x://y/a/./b/.././../c")" = "x://y/c" &&
test "$(test-tool urlmatch-normalization -p "x://y/a/./b/../.././c/")" = "x://y/c/" &&
test "$(test-tool urlmatch-normalization -p "x://y/a/./b/.././../c/././.././.")" = "x://y/" &&
! test-tool urlmatch-normalization "x://y/a/./b/.././../c/././.././.." &&
test "$(test-tool urlmatch-normalization -p "x://y/a/./?/././..")" = "x://y/a/?/././.." &&
test "$(test-tool urlmatch-normalization -p "x://y/%2e/")" = "x://y/" &&
test "$(test-tool urlmatch-normalization -p "x://y/%2E/")" = "x://y/" &&
test "$(test-tool urlmatch-normalization -p "x://y/a/%2e./")" = "x://y/" &&
test "$(test-tool urlmatch-normalization -p "x://y/b/.%2E/")" = "x://y/" &&
test "$(test-tool urlmatch-normalization -p "x://y/c/%2e%2E/")" = "x://y/"
ok 10 - url . and .. segments
expecting success of 0110.11 'url equivalents':
test-tool urlmatch-normalization "httP://x" "Http://X/" &&
test-tool urlmatch-normalization "Http://%4d%65:%4d^%70@The.Host" "hTTP://Me:%4D^p@the.HOST:80/" &&
! test-tool urlmatch-normalization "https://@x.y/^" "httpS://x.y:443/^" &&
test-tool urlmatch-normalization "https://@x.y/^" "httpS://@x.y:0443/^" &&
test-tool urlmatch-normalization "https://@x.y/^/../abc" "httpS://@x.y:0443/abc" &&
test-tool urlmatch-normalization "https://@x.y/^/.." "httpS://@x.y:0443/"
ok 11 - url equivalents
# passed all 11 test(s)
1..11
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0204-gettext-reencode-sanity.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0204-gettext-reencode-sanity/.git/
# lib-gettext: No is_IS UTF-8 locale available
# lib-gettext: No is_IS ISO-8859-1 locale available
ok 1 # skip gettext: Emitting UTF-8 from our UTF-8 *.mo files / Icelandic (missing GETTEXT_LOCALE)
ok 2 # skip gettext: Emitting UTF-8 from our UTF-8 *.mo files / Runes (missing GETTEXT_LOCALE)
ok 3 # skip gettext: Emitting ISO-8859-1 from our UTF-8 *.mo files / Icelandic (missing GETTEXT_ISO_LOCALE)
ok 4 # skip gettext: impossible ISO-8859-1 output (missing GETTEXT_ISO_LOCALE)
ok 5 # skip gettext: Fetching a UTF-8 msgid -> UTF-8 (missing GETTEXT_LOCALE)
ok 6 # skip gettext: Fetching a UTF-8 msgid -> ISO-8859-1 (missing GETTEXT_ISO_LOCALE)
ok 7 # skip gettext.c: git init UTF-8 -> UTF-8 (missing GETTEXT_LOCALE)
ok 8 # skip gettext.c: git init UTF-8 -> ISO-8859-1 (missing GETTEXT_ISO_LOCALE)
# passed all 8 test(s)
1..8
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0202-gettext-perl.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0202-gettext-perl/.git/
# lib-gettext: No is_IS UTF-8 locale available
# lib-gettext: No is_IS ISO-8859-1 locale available
checking prerequisite: PERL_TEST_MORE
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-PERL_TEST_MORE" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-PERL_TEST_MORE" &&
perl -MTest::More -e 0
)
prerequisite PERL_TEST_MORE ok
expecting success of 0202.1 'run t0202/test.pl to test Git::I18N.pm':
"$PERL_PATH" "$TEST_DIRECTORY"/t0202/test.pl 2>stderr &&
test_must_be_empty stderr
1..13
ok 1 - Testing Git::I18N with NO Perl gettext library
ok 2 - Git::I18N is located at /<<PKGBUILDDIR>>/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 # skip GETTEXT_LOCALE must be set by lib-gettext.sh for exhaustive Git::I18N tests
ok 13 # skip GETTEXT_LOCALE must be set by lib-gettext.sh for exhaustive Git::I18N tests
ok 1 - run t0202/test.pl to test Git::I18N.pm
# passed all 1 test(s)
1..1
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0211-trace2-perf.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0211-trace2-perf/.git/
expecting success of 0211.1 'perf stream, return code 0':
test_when_finished "rm trace.perf actual expect" &&
GIT_TRACE2_PERF="$(pwd)/trace.perf" test-tool trace2 001return 0 &&
perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
cat >expect <<-EOF &&
d0|main|version|||||$V
d0|main|start||_T_ABS_|||_EXE_ trace2 001return 0
d0|main|cmd_name|||||trace2 (trace2)
d0|main|exit||_T_ABS_|||code:0
d0|main|atexit||_T_ABS_|||code:0
EOF
test_cmp expect actual
ok 1 - perf stream, return code 0
expecting success of 0211.2 'perf stream, return code 1':
test_when_finished "rm trace.perf actual expect" &&
test_must_fail env GIT_TRACE2_PERF="$(pwd)/trace.perf" test-tool trace2 001return 1 &&
perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
cat >expect <<-EOF &&
d0|main|version|||||$V
d0|main|start||_T_ABS_|||_EXE_ trace2 001return 1
d0|main|cmd_name|||||trace2 (trace2)
d0|main|exit||_T_ABS_|||code:1
d0|main|atexit||_T_ABS_|||code:1
EOF
test_cmp expect actual
ok 2 - perf stream, return code 1
expecting success of 0211.3 'perf stream, error event':
test_when_finished "rm trace.perf actual expect" &&
GIT_TRACE2_PERF="$(pwd)/trace.perf" test-tool trace2 003error "hello world" "this is a test" &&
perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
cat >expect <<-EOF &&
d0|main|version|||||$V
d0|main|start||_T_ABS_|||_EXE_ trace2 003error 'hello world' 'this is a test'
d0|main|cmd_name|||||trace2 (trace2)
d0|main|error|||||hello world
d0|main|error|||||this is a test
d0|main|exit||_T_ABS_|||code:0
d0|main|atexit||_T_ABS_|||code:0
EOF
test_cmp expect actual
error: hello world
error: this is a test
ok 3 - perf stream, error event
expecting success of 0211.4 'perf stream, child processes':
test_when_finished "rm trace.perf actual expect" &&
GIT_TRACE2_PERF="$(pwd)/trace.perf" test-tool trace2 004child test-tool trace2 004child test-tool trace2 001return 0 &&
perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
cat >expect <<-EOF &&
d0|main|version|||||$V
d0|main|start||_T_ABS_|||_EXE_ trace2 004child test-tool trace2 004child test-tool trace2 001return 0
d0|main|cmd_name|||||trace2 (trace2)
d0|main|child_start||_T_ABS_|||[ch0] class:? argv:[test-tool trace2 004child test-tool trace2 001return 0]
d1|main|version|||||$V
d1|main|start||_T_ABS_|||_EXE_ trace2 004child test-tool trace2 001return 0
d1|main|cmd_name|||||trace2 (trace2/trace2)
d1|main|child_start||_T_ABS_|||[ch0] class:? argv:[test-tool trace2 001return 0]
d2|main|version|||||$V
d2|main|start||_T_ABS_|||_EXE_ trace2 001return 0
d2|main|cmd_name|||||trace2 (trace2/trace2/trace2)
d2|main|exit||_T_ABS_|||code:0
d2|main|atexit||_T_ABS_|||code:0
d1|main|child_exit||_T_ABS_|_T_REL_||[ch0] pid:_PID_ code:0
d1|main|exit||_T_ABS_|||code:0
d1|main|atexit||_T_ABS_|||code:0
d0|main|child_exit||_T_ABS_|_T_REL_||[ch0] pid:_PID_ code:0
d0|main|exit||_T_ABS_|||code:0
d0|main|atexit||_T_ABS_|||code:0
EOF
test_cmp expect actual
ok 4 - perf stream, child processes
expecting success of 0211.5 'using global config, perf stream, return code 0':
test_when_finished "rm trace.perf actual expect" &&
test_config_global trace2.perfBrief 1 &&
test_config_global trace2.perfTarget "$(pwd)/trace.perf" &&
test-tool trace2 001return 0 &&
perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
cat >expect <<-EOF &&
d0|main|version|||||$V
d0|main|start||_T_ABS_|||_EXE_ trace2 001return 0
d0|main|cmd_name|||||trace2 (trace2)
d0|main|exit||_T_ABS_|||code:0
d0|main|atexit||_T_ABS_|||code:0
EOF
test_cmp expect actual
ok 5 - using global config, perf stream, return code 0
expecting success of 0211.6 'stopwatch timer test/test1':
test_when_finished "rm trace.perf actual" &&
test_config_global trace2.perfBrief 1 &&
test_config_global trace2.perfTarget "$(pwd)/trace.perf" &&
# Use the timer "test1" 5 times from "main".
test-tool trace2 100timer 5 10 &&
perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
have_timer_event "main" "timer" "test" "test1" 5 actual
d0|main|timer||||test|name:test1 intervals:5 total:_T_TOTAL_ min:_T_MIN_ max:_T_MAX_
ok 6 - stopwatch timer test/test1
ok 7 # skip stopwatch timer test/test2 (missing PTHREAD)
expecting success of 0211.8 'global counter test/test1':
test_when_finished "rm trace.perf actual" &&
test_config_global trace2.perfBrief 1 &&
test_config_global trace2.perfTarget "$(pwd)/trace.perf" &&
# Use the counter "test1" and add n integers.
test-tool trace2 200counter 1 2 3 4 5 &&
perl "$TEST_DIRECTORY/t0211/scrub_perf.perl" <trace.perf >actual &&
have_counter_event "main" "counter" "test" "test1" 15 actual
d0|main|version|||||2.40.1
d0|main|start||_T_ABS_|||_EXE_ trace2 200counter 1 2 3 4 5
d0|main|cmd_name|||||trace2 (trace2)
d0|main|exit||_T_ABS_|||code:0
d0|main|counter||||test|name:test1 value:15
d0|main|atexit||_T_ABS_|||code:0
ok 8 - global counter test/test1
ok 9 # skip global counter test/test2 (missing PTHREAD)
# passed all 9 test(s)
1..9
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0210-trace2-normal.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0210-trace2-normal/.git/
expecting success of 0210.1 'normal stream, return code 0':
test_when_finished "rm trace.normal actual expect" &&
GIT_TRACE2="$(pwd)/trace.normal" test-tool trace2 001return 0 &&
perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <trace.normal >actual &&
cat >expect <<-EOF &&
version $V
start _EXE_ trace2 001return 0
cmd_name trace2 (trace2)
exit elapsed:_TIME_ code:0
atexit elapsed:_TIME_ code:0
EOF
test_cmp expect actual
ok 1 - normal stream, return code 0
expecting success of 0210.2 'normal stream, return code 1':
test_when_finished "rm trace.normal actual expect" &&
test_must_fail env GIT_TRACE2="$(pwd)/trace.normal" test-tool trace2 001return 1 &&
perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <trace.normal >actual &&
cat >expect <<-EOF &&
version $V
start _EXE_ trace2 001return 1
cmd_name trace2 (trace2)
exit elapsed:_TIME_ code:1
atexit elapsed:_TIME_ code:1
EOF
test_cmp expect actual
ok 2 - normal stream, return code 1
expecting success of 0210.3 'automatic filename':
test_when_finished "rm -r traces actual expect" &&
mkdir traces &&
GIT_TRACE2="$(pwd)/traces" test-tool trace2 001return 0 &&
perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <"$(ls traces/*)" >actual &&
cat >expect <<-EOF &&
version $V
start _EXE_ trace2 001return 0
cmd_name trace2 (trace2)
exit elapsed:_TIME_ code:0
atexit elapsed:_TIME_ code:0
EOF
test_cmp expect actual
ok 3 - automatic filename
expecting success of 0210.4 'normal stream, exit code 0':
test_when_finished "rm trace.normal actual expect" &&
GIT_TRACE2="$(pwd)/trace.normal" test-tool trace2 002exit 0 &&
perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <trace.normal >actual &&
cat >expect <<-EOF &&
version $V
start _EXE_ trace2 002exit 0
cmd_name trace2 (trace2)
exit elapsed:_TIME_ code:0
atexit elapsed:_TIME_ code:0
EOF
test_cmp expect actual
ok 4 - normal stream, exit code 0
expecting success of 0210.5 'normal stream, exit code 1':
test_when_finished "rm trace.normal actual expect" &&
test_must_fail env GIT_TRACE2="$(pwd)/trace.normal" test-tool trace2 002exit 1 &&
perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <trace.normal >actual &&
cat >expect <<-EOF &&
version $V
start _EXE_ trace2 002exit 1
cmd_name trace2 (trace2)
exit elapsed:_TIME_ code:1
atexit elapsed:_TIME_ code:1
EOF
test_cmp expect actual
ok 5 - normal stream, exit code 1
expecting success of 0210.6 'normal stream, error event':
test_when_finished "rm trace.normal actual expect" &&
GIT_TRACE2="$(pwd)/trace.normal" test-tool trace2 003error "hello world" "this is a test" &&
perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <trace.normal >actual &&
cat >expect <<-EOF &&
version $V
start _EXE_ trace2 003error 'hello world' 'this is a test'
cmd_name trace2 (trace2)
error hello world
error this is a test
exit elapsed:_TIME_ code:0
atexit elapsed:_TIME_ code:0
EOF
test_cmp expect actual
error: hello world
error: this is a test
ok 6 - normal stream, error event
expecting success of 0210.7 'BUG messages are written to trace2':
test_when_finished "rm trace.normal actual expect" &&
test_must_fail env GIT_TRACE2="$(pwd)/trace.normal" test-tool trace2 007bug &&
perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <trace.normal >actual &&
cat >expect <<-EOF &&
version $V
start _EXE_ trace2 007bug
cmd_name trace2 (trace2)
error the bug message
exit elapsed:_TIME_ code:99
atexit elapsed:_TIME_ code:99
EOF
test_cmp expect actual
BUG: t/helper/test-trace2.c:208: the bug message
ok 7 - BUG messages are written to trace2
expecting success of 0210.8 'bug messages with BUG_if_bug() are written to trace2':
test_when_finished "rm trace.normal actual expect" &&
test_expect_code 99 env GIT_TRACE2="$(pwd)/trace.normal" \
test-tool trace2 008bug 2>err &&
cat >expect <<-\EOF &&
a bug message
another bug message
an explicit BUG_if_bug() following bug() call(s) is nice, but not required
EOF
sed "s/^.*: //" <err >actual &&
test_cmp expect actual &&
perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <trace.normal >actual &&
cat >expect <<-EOF &&
version $V
start _EXE_ trace2 008bug
cmd_name trace2 (trace2)
error a bug message
error another bug message
error an explicit BUG_if_bug() following bug() call(s) is nice, but not required
exit elapsed:_TIME_ code:99
atexit elapsed:_TIME_ code:99
EOF
test_cmp expect actual
ok 8 - bug messages with BUG_if_bug() are written to trace2
expecting success of 0210.9 'bug messages without explicit BUG_if_bug() are written to trace2':
test_when_finished "rm trace.normal actual expect" &&
test_expect_code 99 env GIT_TRACE2="$(pwd)/trace.normal" \
test-tool trace2 009bug_BUG 2>err &&
cat >expect <<-\EOF &&
a bug message
another bug message
had bug() call(s) in this process without explicit BUG_if_bug()
EOF
sed "s/^.*: //" <err >actual &&
test_cmp expect actual &&
perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <trace.normal >actual &&
cat >expect <<-EOF &&
version $V
start _EXE_ trace2 009bug_BUG
cmd_name trace2 (trace2)
error a bug message
error another bug message
error on exit(): had bug() call(s) in this process without explicit BUG_if_bug()
exit elapsed:_TIME_ code:99
atexit elapsed:_TIME_ code:99
EOF
test_cmp expect actual
ok 9 - bug messages without explicit BUG_if_bug() are written to trace2
expecting success of 0210.10 'bug messages followed by BUG() are written to trace2':
test_when_finished "rm trace.normal actual expect" &&
test_expect_code 99 env GIT_TRACE2="$(pwd)/trace.normal" \
test-tool trace2 010bug_BUG 2>err &&
cat >expect <<-\EOF &&
a bug message
a BUG message
EOF
sed "s/^.*: //" <err >actual &&
test_cmp expect actual &&
perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <trace.normal >actual &&
cat >expect <<-EOF &&
version $V
start _EXE_ trace2 010bug_BUG
cmd_name trace2 (trace2)
error a bug message
error a BUG message
exit elapsed:_TIME_ code:99
atexit elapsed:_TIME_ code:99
EOF
test_cmp expect actual
ok 10 - bug messages followed by BUG() are written to trace2
expecting success of 0210.11 'using global config, normal stream, return code 0':
test_when_finished "rm trace.normal actual expect" &&
test_config_global trace2.normalBrief 1 &&
test_config_global trace2.normalTarget "$(pwd)/trace.normal" &&
test-tool trace2 001return 0 &&
perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <trace.normal >actual &&
cat >expect <<-EOF &&
version $V
start _EXE_ trace2 001return 0
cmd_name trace2 (trace2)
exit elapsed:_TIME_ code:0
atexit elapsed:_TIME_ code:0
EOF
test_cmp expect actual
ok 11 - using global config, normal stream, return code 0
expecting success of 0210.12 'using global config with include':
test_when_finished "rm trace.normal actual expect real.gitconfig" &&
test_config_global trace2.normalBrief 1 &&
test_config_global trace2.normalTarget "$(pwd)/trace.normal" &&
mv "$(pwd)/.gitconfig" "$(pwd)/real.gitconfig" &&
test_config_global include.path "$(pwd)/real.gitconfig" &&
test-tool trace2 001return 0 &&
perl "$TEST_DIRECTORY/t0210/scrub_normal.perl" <trace.normal >actual &&
cat >expect <<-EOF &&
version $V
start _EXE_ trace2 001return 0
cmd_name trace2 (trace2)
exit elapsed:_TIME_ code:0
atexit elapsed:_TIME_ code:0
EOF
test_cmp expect actual
ok 12 - using global config with include
# passed all 12 test(s)
1..12
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0212-trace2-event.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0212-trace2-event/.git/
expecting success of 0212.1 'event stream, error event':
test_when_finished "rm trace.event actual expect" &&
GIT_TRACE2_EVENT="$(pwd)/trace.event" test-tool trace2 003error "hello world" "this is a test" &&
perl "$TEST_DIRECTORY/t0212/parse_events.perl" <trace.event >actual &&
sed -e "s/^|//" >expect <<-EOF &&
|VAR1 = {
| "_SID0_":{
| "argv":[
| "_EXE_",
| "trace2",
| "003error",
| "hello world",
| "this is a test"
| ],
| "errors":[
| "%s",
| "%s"
| ],
| "exit_code":0,
| "hierarchy":"trace2",
| "name":"trace2",
| "version":"$V"
| }
|};
EOF
test_cmp expect actual
error: hello world
error: this is a test
ok 1 - event stream, error event
expecting success of 0212.2 'event stream, return code 0':
test_when_finished "rm trace.event actual expect" &&
GIT_TRACE2_EVENT="$(pwd)/trace.event" test-tool trace2 004child test-tool trace2 004child test-tool trace2 001return 0 &&
perl "$TEST_DIRECTORY/t0212/parse_events.perl" <trace.event >actual &&
sed -e "s/^|//" >expect <<-EOF &&
|VAR1 = {
| "_SID0_":{
| "argv":[
| "_EXE_",
| "trace2",
| "004child",
| "test-tool",
| "trace2",
| "004child",
| "test-tool",
| "trace2",
| "001return",
| "0"
| ],
| "child":{
| "0":{
| "child_argv":[
| "_EXE_",
| "trace2",
| "004child",
| "test-tool",
| "trace2",
| "001return",
| "0"
| ],
| "child_class":"?",
| "child_code":0,
| "use_shell":0
| }
| },
| "exit_code":0,
| "hierarchy":"trace2",
| "name":"trace2",
| "version":"$V"
| },
| "_SID0_/_SID1_":{
| "argv":[
| "_EXE_",
| "trace2",
| "004child",
| "test-tool",
| "trace2",
| "001return",
| "0"
| ],
| "child":{
| "0":{
| "child_argv":[
| "_EXE_",
| "trace2",
| "001return",
| "0"
| ],
| "child_class":"?",
| "child_code":0,
| "use_shell":0
| }
| },
| "exit_code":0,
| "hierarchy":"trace2/trace2",
| "name":"trace2",
| "version":"$V"
| },
| "_SID0_/_SID1_/_SID2_":{
| "argv":[
| "_EXE_",
| "trace2",
| "001return",
| "0"
| ],
| "exit_code":0,
| "hierarchy":"trace2/trace2/trace2",
| "name":"trace2",
| "version":"$V"
| }
|};
EOF
test_cmp expect actual
ok 2 - event stream, return code 0
expecting success of 0212.3 'event stream, list config':
test_when_finished "rm trace.event actual expect" &&
git config --local t0212.abc 1 &&
git config --local t0212.def "hello world" &&
GIT_TRACE2_EVENT="$(pwd)/trace.event" GIT_TRACE2_CONFIG_PARAMS="t0212.*" test-tool trace2 001return 0 &&
perl "$TEST_DIRECTORY/t0212/parse_events.perl" <trace.event >actual &&
sed -e "s/^|//" >expect <<-EOF &&
|VAR1 = {
| "_SID0_":{
| "argv":[
| "_EXE_",
| "trace2",
| "001return",
| "0"
| ],
| "exit_code":0,
| "hierarchy":"trace2",
| "name":"trace2",
| "params":[
| {
| "param":"t0212.abc",
| "value":"1"
| },
| {
| "param":"t0212.def",
| "value":"hello world"
| }
| ],
| "version":"$V"
| }
|};
EOF
test_cmp expect actual
ok 3 - event stream, list config
expecting success of 0212.4 'event stream, list env vars':
test_when_finished "rm trace.event actual expect" &&
GIT_TRACE2_EVENT="$(pwd)/trace.event" \
GIT_TRACE2_ENV_VARS="A_VAR,OTHER_VAR,MISSING" \
A_VAR=1 OTHER_VAR="hello world" test-tool trace2 001return 0 &&
perl "$TEST_DIRECTORY/t0212/parse_events.perl" <trace.event >actual &&
sed -e "s/^|//" >expect <<-EOF &&
|VAR1 = {
| "_SID0_":{
| "argv":[
| "_EXE_",
| "trace2",
| "001return",
| "0"
| ],
| "exit_code":0,
| "hierarchy":"trace2",
| "name":"trace2",
| "params":[
| {
| "param":"A_VAR",
| "value":"1"
| },
| {
| "param":"OTHER_VAR",
| "value":"hello world"
| }
| ],
| "version":"$V"
| }
|};
EOF
test_cmp expect actual
ok 4 - event stream, list env vars
expecting success of 0212.5 'basic trace2_data':
test_when_finished "rm trace.event actual expect" &&
GIT_TRACE2_EVENT="$(pwd)/trace.event" test-tool trace2 006data test_category k1 v1 test_category k2 v2 &&
perl "$TEST_DIRECTORY/t0212/parse_events.perl" <trace.event >actual &&
sed -e "s/^|//" >expect <<-EOF &&
|VAR1 = {
| "_SID0_":{
| "argv":[
| "_EXE_",
| "trace2",
| "006data",
| "test_category",
| "k1",
| "v1",
| "test_category",
| "k2",
| "v2"
| ],
| "data":{
| "test_category":{
| "k1":"v1",
| "k2":"v2"
| }
| },
| "exit_code":0,
| "hierarchy":"trace2",
| "name":"trace2",
| "version":"$V"
| }
|};
EOF
test_cmp expect actual
ok 5 - basic trace2_data
expecting success of 0212.6 'using global config, event stream, error event':
test_when_finished "rm trace.event actual expect" &&
test_config_global trace2.eventTarget "$(pwd)/trace.event" &&
test-tool trace2 003error "hello world" "this is a test" &&
perl "$TEST_DIRECTORY/t0212/parse_events.perl" <trace.event >actual &&
sed -e "s/^|//" >expect <<-EOF &&
|VAR1 = {
| "_SID0_":{
| "argv":[
| "_EXE_",
| "trace2",
| "003error",
| "hello world",
| "this is a test"
| ],
| "errors":[
| "%s",
| "%s"
| ],
| "exit_code":0,
| "hierarchy":"trace2",
| "name":"trace2",
| "version":"$V"
| }
|};
EOF
test_cmp expect actual
error: hello world
error: this is a test
ok 6 - using global config, event stream, error event
expecting success of 0212.7 'discard traces when there are too many files':
mkdir trace_target_dir &&
test_when_finished "rm -r trace_target_dir" &&
(
GIT_TRACE2_MAX_FILES=5 &&
export GIT_TRACE2_MAX_FILES &&
cd trace_target_dir &&
test_seq $GIT_TRACE2_MAX_FILES >../expected_filenames.txt &&
xargs touch <../expected_filenames.txt &&
cd .. &&
GIT_TRACE2_EVENT="$(pwd)/trace_target_dir" test-tool trace2 001return 0
) &&
echo git-trace2-discard >>expected_filenames.txt &&
ls trace_target_dir >ls_output.txt &&
test_cmp expected_filenames.txt ls_output.txt &&
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":"20230916T191033.948585Z-Hc54f2dd4-P0000791c","thread":"main","time":"2023-09-16T19:10:33.949059Z","file":"common-main.c","line":50,"evt":"3","exe":"2.40.1"}
{"event":"too_many_files","sid":"20230916T191033.948585Z-Hc54f2dd4-P0000791c","thread":"main","time":"2023-09-16T19:10:33.949148Z","file":"common-main.c","line":50}
ok 7 - discard traces when there are too many files
# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0300-credentials.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0300-credentials/.git/
expecting success of 0300.1 'setup helper scripts':
cat >dump <<-\EOF &&
whoami=$(echo $0 | sed s/.*git-credential-//)
echo >&2 "$whoami: $*"
OIFS=$IFS
IFS==
while read key value; do
echo >&2 "$whoami: $key=$value"
eval "$key=$value"
done
IFS=$OIFS
EOF
write_script git-credential-useless <<-\EOF &&
. ./dump
exit 0
EOF
write_script git-credential-quit <<-\EOF &&
. ./dump
echo quit=1
EOF
write_script git-credential-verbatim <<-\EOF &&
user=$1; shift
pass=$1; shift
. ./dump
test -z "$user" || echo username=$user
test -z "$pass" || echo password=$pass
EOF
write_script git-credential-verbatim-with-expiry <<-\EOF &&
user=$1; shift
pass=$1; shift
pexpiry=$1; shift
. ./dump
test -z "$user" || echo username=$user
test -z "$pass" || echo password=$pass
test -z "$pexpiry" || echo password_expiry_utc=$pexpiry
EOF
PATH="$PWD:$PATH"
ok 1 - setup helper scripts
expecting success of 0300.2 'credential_fill invokes helper':
check fill "verbatim foo bar" <<-\EOF
protocol=http
host=example.com
--
protocol=http
host=example.com
username=foo
password=bar
--
verbatim: get
verbatim: protocol=http
verbatim: host=example.com
EOF
ok 2 - credential_fill invokes helper
expecting success of 0300.3 'credential_fill invokes multiple helpers':
check fill useless "verbatim foo bar" <<-\EOF
protocol=http
host=example.com
--
protocol=http
host=example.com
username=foo
password=bar
--
useless: get
useless: protocol=http
useless: host=example.com
verbatim: get
verbatim: protocol=http
verbatim: host=example.com
EOF
ok 3 - credential_fill invokes multiple helpers
expecting success of 0300.4 'credential_fill stops when we get a full response':
check fill "verbatim one two" "verbatim three four" <<-\EOF
protocol=http
host=example.com
--
protocol=http
host=example.com
username=one
password=two
--
verbatim: get
verbatim: protocol=http
verbatim: host=example.com
EOF
ok 4 - credential_fill stops when we get a full response
expecting success of 0300.5 'credential_fill continues through partial response':
check fill "verbatim one \"\"" "verbatim two three" <<-\EOF
protocol=http
host=example.com
--
protocol=http
host=example.com
username=two
password=three
--
verbatim: get
verbatim: protocol=http
verbatim: host=example.com
verbatim: get
verbatim: protocol=http
verbatim: host=example.com
verbatim: username=one
EOF
ok 5 - credential_fill continues through partial response
expecting success of 0300.6 'credential_fill populates password_expiry_utc':
check fill "verbatim-with-expiry one two 9999999999" <<-\EOF
protocol=http
host=example.com
--
protocol=http
host=example.com
username=one
password=two
password_expiry_utc=9999999999
--
verbatim-with-expiry: get
verbatim-with-expiry: protocol=http
verbatim-with-expiry: host=example.com
EOF
ok 6 - credential_fill populates password_expiry_utc
expecting success of 0300.7 'credential_fill ignores expired password':
check fill "verbatim-with-expiry one two 5" "verbatim three four" <<-\EOF
protocol=http
host=example.com
--
protocol=http
host=example.com
username=three
password=four
--
verbatim-with-expiry: get
verbatim-with-expiry: protocol=http
verbatim-with-expiry: host=example.com
verbatim: get
verbatim: protocol=http
verbatim: host=example.com
verbatim: username=one
EOF
ok 7 - credential_fill ignores expired password
expecting success of 0300.8 'credential_fill passes along metadata':
check fill "verbatim one two" <<-\EOF
protocol=ftp
host=example.com
path=foo.git
--
protocol=ftp
host=example.com
path=foo.git
username=one
password=two
--
verbatim: get
verbatim: protocol=ftp
verbatim: host=example.com
verbatim: path=foo.git
EOF
ok 8 - credential_fill passes along metadata
expecting success of 0300.9 'credential_approve calls all helpers':
check approve useless "verbatim one two" <<-\EOF
protocol=http
host=example.com
username=foo
password=bar
--
--
useless: store
useless: protocol=http
useless: host=example.com
useless: username=foo
useless: password=bar
verbatim: store
verbatim: protocol=http
verbatim: host=example.com
verbatim: username=foo
verbatim: password=bar
EOF
ok 9 - credential_approve calls all helpers
expecting success of 0300.10 'credential_approve stores password expiry':
check approve useless <<-\EOF
protocol=http
host=example.com
username=foo
password=bar
password_expiry_utc=9999999999
--
--
useless: store
useless: protocol=http
useless: host=example.com
useless: username=foo
useless: password=bar
useless: password_expiry_utc=9999999999
EOF
ok 10 - credential_approve stores password expiry
expecting success of 0300.11 'do not bother storing password-less credential':
check approve useless <<-\EOF
protocol=http
host=example.com
username=foo
--
--
EOF
ok 11 - do not bother storing password-less credential
expecting success of 0300.12 'credential_approve does not store expired password':
check approve useless <<-\EOF
protocol=http
host=example.com
username=foo
password=bar
password_expiry_utc=5
--
--
EOF
ok 12 - credential_approve does not store expired password
expecting success of 0300.13 'credential_reject calls all helpers':
check reject useless "verbatim one two" <<-\EOF
protocol=http
host=example.com
username=foo
password=bar
--
--
useless: erase
useless: protocol=http
useless: host=example.com
useless: username=foo
useless: password=bar
verbatim: erase
verbatim: protocol=http
verbatim: host=example.com
verbatim: username=foo
verbatim: password=bar
EOF
ok 13 - credential_reject calls all helpers
expecting success of 0300.14 'credential_reject erases credential regardless of expiry':
check reject useless <<-\EOF
protocol=http
host=example.com
username=foo
password=bar
password_expiry_utc=5
--
--
useless: erase
useless: protocol=http
useless: host=example.com
useless: username=foo
useless: password=bar
useless: password_expiry_utc=5
EOF
ok 14 - credential_reject erases credential regardless of expiry
expecting success of 0300.15 'usernames can be preserved':
check fill "verbatim \"\" three" <<-\EOF
protocol=http
host=example.com
username=one
--
protocol=http
host=example.com
username=one
password=three
--
verbatim: get
verbatim: protocol=http
verbatim: host=example.com
verbatim: username=one
EOF
ok 15 - usernames can be preserved
expecting success of 0300.16 'usernames can be overridden':
check fill "verbatim two three" <<-\EOF
protocol=http
host=example.com
username=one
--
protocol=http
host=example.com
username=two
password=three
--
verbatim: get
verbatim: protocol=http
verbatim: host=example.com
verbatim: username=one
EOF
ok 16 - usernames can be overridden
expecting success of 0300.17 'do not bother completing already-full credential':
check fill "verbatim three four" <<-\EOF
protocol=http
host=example.com
username=one
password=two
--
protocol=http
host=example.com
username=one
password=two
--
EOF
ok 17 - do not bother completing already-full credential
expecting success of 0300.18 'empty helper list falls back to internal getpass':
check fill <<-\EOF
protocol=http
host=example.com
--
protocol=http
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'http://example.com':
askpass: Password for 'http://askpass-username@example.com':
EOF
ok 18 - empty helper list falls back to internal getpass
expecting success of 0300.19 'internal getpass does not ask for known username':
check fill <<-\EOF
protocol=http
host=example.com
username=foo
--
protocol=http
host=example.com
username=foo
password=askpass-password
--
askpass: Password for 'http://foo@example.com':
EOF
ok 19 - internal getpass does not ask for known username
expecting success of 0300.20 'git-credential respects core.askPass':
write_script alternate-askpass <<-\EOF &&
echo >&2 "alternate askpass invoked"
echo alternate-value
EOF
test_config core.askpass "$PWD/alternate-askpass" &&
(
# unset GIT_ASKPASS set by lib-credential.sh which would
# override our config, but do so in a subshell so that we do
# not interfere with other tests
sane_unset GIT_ASKPASS &&
check fill <<-\EOF
protocol=http
host=example.com
--
protocol=http
host=example.com
username=alternate-value
password=alternate-value
--
alternate askpass invoked
alternate askpass invoked
EOF
)
ok 20 - git-credential respects core.askPass
expecting success of 0300.21 'respect configured credentials':
test_config credential.helper "$HELPER" &&
check fill <<-\EOF
protocol=http
host=example.com
--
protocol=http
host=example.com
username=foo
password=bar
--
EOF
ok 21 - respect configured credentials
expecting success of 0300.22 'match configured credential':
test_config credential.https://example.com.helper "$HELPER" &&
check fill <<-\EOF
protocol=https
host=example.com
path=repo.git
--
protocol=https
host=example.com
username=foo
password=bar
--
EOF
ok 22 - match configured credential
expecting success of 0300.23 'do not match configured credential':
test_config credential.https://foo.helper "$HELPER" &&
check fill <<-\EOF
protocol=https
host=bar
--
protocol=https
host=bar
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://bar':
askpass: Password for 'https://askpass-username@bar':
EOF
ok 23 - do not match configured credential
expecting success of 0300.24 'match multiple configured helpers':
test_config credential.helper "verbatim \"\" \"\"" &&
test_config credential.https://example.com.helper "$HELPER" &&
check fill <<-\EOF
protocol=https
host=example.com
path=repo.git
--
protocol=https
host=example.com
username=foo
password=bar
--
verbatim: get
verbatim: protocol=https
verbatim: host=example.com
EOF
ok 24 - match multiple configured helpers
expecting success of 0300.25 'match multiple configured helpers with URLs':
test_config credential.https://example.com/repo.git.helper "verbatim \"\" \"\"" &&
test_config credential.https://example.com.helper "$HELPER" &&
check fill <<-\EOF
protocol=https
host=example.com
path=repo.git
--
protocol=https
host=example.com
username=foo
password=bar
--
verbatim: get
verbatim: protocol=https
verbatim: host=example.com
EOF
ok 25 - match multiple configured helpers with URLs
expecting success of 0300.26 'match percent-encoded values':
test_config credential.https://example.com/%2566.git.helper "$HELPER" &&
check fill <<-\EOF
url=https://example.com/%2566.git
--
protocol=https
host=example.com
username=foo
password=bar
--
EOF
ok 26 - match percent-encoded values
expecting success of 0300.27 'match percent-encoded UTF-8 values in path':
test_config credential.https://example.com.useHttpPath true &&
test_config credential.https://example.com/perú.git.helper "$HELPER" &&
check fill <<-\EOF
url=https://example.com/per%C3%BA.git
--
protocol=https
host=example.com
path=perú.git
username=foo
password=bar
--
EOF
ok 27 - match percent-encoded UTF-8 values in path
expecting success of 0300.28 'match percent-encoded values in username':
test_config credential.https://user%2fname@example.com/foo/bar.git.helper "$HELPER" &&
check fill <<-\EOF
url=https://user%2fname@example.com/foo/bar.git
--
protocol=https
host=example.com
username=foo
password=bar
--
EOF
ok 28 - match percent-encoded values in username
expecting success of 0300.29 'fetch with multiple path components':
test_unconfig credential.helper &&
test_config credential.https://example.com/foo/repo.git.helper "verbatim foo bar" &&
check fill <<-\EOF
url=https://example.com/foo/repo.git
--
protocol=https
host=example.com
username=foo
password=bar
--
verbatim: get
verbatim: protocol=https
verbatim: host=example.com
EOF
ok 29 - fetch with multiple path components
expecting success of 0300.30 'pull username from config':
test_config credential.https://example.com.username foo &&
check fill <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=foo
password=askpass-password
--
askpass: Password for 'https://foo@example.com':
EOF
ok 30 - pull username from config
expecting success of 0300.31 'honors username from URL over helper (URL)':
test_config credential.https://example.com.username bob &&
test_config credential.https://example.com.helper "verbatim \"\" bar" &&
check fill <<-\EOF
url=https://alice@example.com
--
protocol=https
host=example.com
username=alice
password=bar
--
verbatim: get
verbatim: protocol=https
verbatim: host=example.com
verbatim: username=alice
EOF
ok 31 - honors username from URL over helper (URL)
expecting success of 0300.32 'honors username from URL over helper (components)':
test_config credential.https://example.com.username bob &&
test_config credential.https://example.com.helper "verbatim \"\" bar" &&
check fill <<-\EOF
protocol=https
host=example.com
username=alice
--
protocol=https
host=example.com
username=alice
password=bar
--
verbatim: get
verbatim: protocol=https
verbatim: host=example.com
verbatim: username=alice
EOF
ok 32 - honors username from URL over helper (components)
expecting success of 0300.33 'last matching username wins':
test_config credential.https://example.com/path.git.username bob &&
test_config credential.https://example.com.username alice &&
test_config credential.https://example.com.helper "verbatim \"\" bar" &&
check fill <<-\EOF
url=https://example.com/path.git
--
protocol=https
host=example.com
username=alice
password=bar
--
verbatim: get
verbatim: protocol=https
verbatim: host=example.com
verbatim: username=alice
EOF
ok 33 - last matching username wins
expecting success of 0300.34 'http paths can be part of context':
check fill "verbatim foo bar" <<-\EOF &&
protocol=https
host=example.com
path=foo.git
--
protocol=https
host=example.com
username=foo
password=bar
--
verbatim: get
verbatim: protocol=https
verbatim: host=example.com
EOF
test_config credential.https://example.com.useHttpPath true &&
check fill "verbatim foo bar" <<-\EOF
protocol=https
host=example.com
path=foo.git
--
protocol=https
host=example.com
path=foo.git
username=foo
password=bar
--
verbatim: get
verbatim: protocol=https
verbatim: host=example.com
verbatim: path=foo.git
EOF
ok 34 - http paths can be part of context
expecting success of 0300.35 'context uses urlmatch':
test_config "credential.https://*.org.useHttpPath" true &&
check fill "verbatim foo bar" <<-\EOF
protocol=https
host=example.org
path=foo.git
--
protocol=https
host=example.org
path=foo.git
username=foo
password=bar
--
verbatim: get
verbatim: protocol=https
verbatim: host=example.org
verbatim: path=foo.git
EOF
ok 35 - context uses urlmatch
expecting success of 0300.36 'helpers can abort the process':
test_must_fail git \
-c credential.helper=quit \
-c credential.helper="verbatim foo bar" \
credential fill >stdout 2>stderr <<-\EOF &&
protocol=http
host=example.com
EOF
test_must_be_empty stdout &&
cat >expect <<-\EOF &&
quit: get
quit: protocol=http
quit: host=example.com
fatal: credential helper 'quit' told us to quit
EOF
test_cmp expect stderr
ok 36 - helpers can abort the process
expecting success of 0300.37 'empty helper spec resets helper list':
test_config credential.helper "verbatim file file" &&
check fill "" "verbatim cmdline cmdline" <<-\EOF
protocol=http
host=example.com
--
protocol=http
host=example.com
username=cmdline
password=cmdline
--
verbatim: get
verbatim: protocol=http
verbatim: host=example.com
EOF
ok 37 - empty helper spec resets helper list
expecting success of 0300.38 'url parser rejects embedded newlines':
test_must_fail git credential fill 2>stderr <<-\EOF &&
url=https://one.example.com?%0ahost=two.example.com/
EOF
cat >expect <<-\EOF &&
warning: url contains a newline in its path component: https://one.example.com?%0ahost=two.example.com/
fatal: credential url cannot be parsed: https://one.example.com?%0ahost=two.example.com/
EOF
test_cmp expect stderr
ok 38 - url parser rejects embedded newlines
expecting success of 0300.39 'host-less URLs are parsed as empty host':
check fill "verbatim foo bar" <<-\EOF
url=cert:///path/to/cert.pem
--
protocol=cert
host=
path=path/to/cert.pem
username=foo
password=bar
--
verbatim: get
verbatim: protocol=cert
verbatim: host=
verbatim: path=path/to/cert.pem
EOF
ok 39 - host-less URLs are parsed as empty host
expecting success of 0300.40 'credential system refuses to work with missing host':
test_must_fail git credential fill 2>stderr <<-\EOF &&
protocol=http
EOF
cat >expect <<-\EOF &&
fatal: refusing to work with credential missing host field
EOF
test_cmp expect stderr
ok 40 - credential system refuses to work with missing host
expecting success of 0300.41 'credential system refuses to work with missing protocol':
test_must_fail git credential fill 2>stderr <<-\EOF &&
host=example.com
EOF
cat >expect <<-\EOF &&
fatal: refusing to work with credential missing protocol field
EOF
test_cmp expect stderr
ok 41 - credential system refuses to work with missing protocol
expecting success of 0300.42 'url parser handles bare query marker':
check_host_and_path https://example.com?foo.git example.com ?foo.git
ok 42 - url parser handles bare query marker
expecting success of 0300.43 'url parser handles bare fragment marker':
check_host_and_path https://example.com#foo.git example.com "#foo.git"
ok 43 - url parser handles bare fragment marker
expecting success of 0300.44 'url parser not confused by encoded markers':
check_host_and_path https://example.com%23%3f%2f/foo.git \
"example.com#?/" foo.git
ok 44 - url parser not confused by encoded markers
expecting success of 0300.45 'credential config with partial URLs':
echo "echo password=yep" | write_script git-credential-yep &&
test_write_lines url=https://user@example.com/repo.git >stdin &&
for partial in \
example.com \
user@example.com \
https:// \
https://example.com \
https://example.com/ \
https://user@example.com \
https://user@example.com/ \
https://example.com/repo.git \
https://user@example.com/repo.git \
/repo.git
do
git -c credential.$partial.helper=yep \
credential fill <stdin >stdout &&
grep yep stdout ||
return 1
done &&
for partial in \
dont.use.this \
http:// \
/repo
do
git -c credential.$partial.helper=yep \
credential fill <stdin >stdout &&
! grep yep stdout ||
return 1
done &&
git -c credential.$partial.helper=yep \
-c credential.with%0anewline.username=uh-oh \
credential fill <stdin >stdout 2>stderr &&
test_i18ngrep "skipping credential lookup for key" stderr
password=yep
password=yep
password=yep
password=yep
password=yep
password=yep
password=yep
password=yep
password=yep
password=yep
askpass: Password for 'https://user@example.com':
askpass: Password for 'https://user@example.com':
askpass: Password for 'https://user@example.com':
warning: skipping credential lookup for key: credential.with%0anewline
ok 45 - credential config with partial URLs
# passed all 45 test(s)
1..45
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0303-credential-external.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0303-credential-external/.git/
1..0 # SKIP used to test external credential helpers
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0301-credential-cache.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0301-credential-cache/.git/
expecting success of 0301.1 'helper (cache) has no existing data':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
EOF
ok 1 - helper (cache) has no existing data
expecting success of 0301.2 'helper (cache) stores password':
check approve $HELPER <<-\EOF
protocol=https
host=example.com
username=store-user
password=store-pass
EOF
ok 2 - helper (cache) stores password
expecting success of 0301.3 'helper (cache) can retrieve password':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=store-user
password=store-pass
--
EOF
ok 3 - helper (cache) can retrieve password
expecting success of 0301.4 'helper (cache) requires matching protocol':
check fill $HELPER <<-\EOF
protocol=http
host=example.com
--
protocol=http
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'http://example.com':
askpass: Password for 'http://askpass-username@example.com':
EOF
ok 4 - helper (cache) requires matching protocol
expecting success of 0301.5 'helper (cache) requires matching host':
check fill $HELPER <<-\EOF
protocol=https
host=other.tld
--
protocol=https
host=other.tld
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://other.tld':
askpass: Password for 'https://askpass-username@other.tld':
EOF
ok 5 - helper (cache) requires matching host
expecting success of 0301.6 'helper (cache) requires matching username':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=other
--
protocol=https
host=example.com
username=other
password=askpass-password
--
askpass: Password for 'https://other@example.com':
EOF
ok 6 - helper (cache) requires matching username
expecting success of 0301.7 'helper (cache) requires matching path':
test_config credential.usehttppath true &&
check approve $HELPER <<-\EOF &&
protocol=http
host=path.tld
path=foo.git
username=user
password=pass
EOF
check fill $HELPER <<-\EOF
protocol=http
host=path.tld
path=bar.git
--
protocol=http
host=path.tld
path=bar.git
username=askpass-username
password=askpass-password
--
askpass: Username for 'http://path.tld/bar.git':
askpass: Password for 'http://askpass-username@path.tld/bar.git':
EOF
ok 7 - helper (cache) requires matching path
expecting success of 0301.8 'helper (cache) can forget host':
check reject $HELPER <<-\EOF &&
protocol=https
host=example.com
EOF
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
EOF
ok 8 - helper (cache) can forget host
expecting success of 0301.9 'helper (cache) can store multiple users':
check approve $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user1
password=pass1
EOF
check approve $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user2
password=pass2
EOF
check fill $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user1
--
protocol=https
host=example.com
username=user1
password=pass1
EOF
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=user2
--
protocol=https
host=example.com
username=user2
password=pass2
EOF
ok 9 - helper (cache) can store multiple users
expecting success of 0301.10 'helper (cache) can forget user':
check reject $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user1
EOF
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=user1
--
protocol=https
host=example.com
username=user1
password=askpass-password
--
askpass: Password for 'https://user1@example.com':
EOF
ok 10 - helper (cache) can forget user
expecting success of 0301.11 'helper (cache) remembers other user':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=user2
--
protocol=https
host=example.com
username=user2
password=pass2
EOF
ok 11 - helper (cache) remembers other user
expecting success of 0301.12 'helper (cache) can store empty username':
check approve $HELPER <<-\EOF &&
protocol=https
host=sso.tld
username=
password=
EOF
check fill $HELPER <<-\EOF
protocol=https
host=sso.tld
--
protocol=https
host=sso.tld
username=
password=
EOF
ok 12 - helper (cache) can store empty username
expecting success of 0301.13 'socket defaults to ~/.cache/git/credential/socket':
test_when_finished "
git credential-cache exit &&
rmdir -p .cache/git/credential/
" &&
test_path_is_missing "$HOME/.git-credential-cache" &&
test_path_is_socket "$HOME/.cache/git/credential/socket"
ok 13 - socket defaults to ~/.cache/git/credential/socket
expecting success of 0301.14 'helper (cache) has no existing data':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
EOF
ok 14 - helper (cache) has no existing data
expecting success of 0301.15 'helper (cache) stores password':
check approve $HELPER <<-\EOF
protocol=https
host=example.com
username=store-user
password=store-pass
EOF
ok 15 - helper (cache) stores password
expecting success of 0301.16 'helper (cache) can retrieve password':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=store-user
password=store-pass
--
EOF
ok 16 - helper (cache) can retrieve password
expecting success of 0301.17 'helper (cache) requires matching protocol':
check fill $HELPER <<-\EOF
protocol=http
host=example.com
--
protocol=http
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'http://example.com':
askpass: Password for 'http://askpass-username@example.com':
EOF
ok 17 - helper (cache) requires matching protocol
expecting success of 0301.18 'helper (cache) requires matching host':
check fill $HELPER <<-\EOF
protocol=https
host=other.tld
--
protocol=https
host=other.tld
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://other.tld':
askpass: Password for 'https://askpass-username@other.tld':
EOF
ok 18 - helper (cache) requires matching host
expecting success of 0301.19 'helper (cache) requires matching username':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=other
--
protocol=https
host=example.com
username=other
password=askpass-password
--
askpass: Password for 'https://other@example.com':
EOF
ok 19 - helper (cache) requires matching username
expecting success of 0301.20 'helper (cache) requires matching path':
test_config credential.usehttppath true &&
check approve $HELPER <<-\EOF &&
protocol=http
host=path.tld
path=foo.git
username=user
password=pass
EOF
check fill $HELPER <<-\EOF
protocol=http
host=path.tld
path=bar.git
--
protocol=http
host=path.tld
path=bar.git
username=askpass-username
password=askpass-password
--
askpass: Username for 'http://path.tld/bar.git':
askpass: Password for 'http://askpass-username@path.tld/bar.git':
EOF
ok 20 - helper (cache) requires matching path
expecting success of 0301.21 'helper (cache) can forget host':
check reject $HELPER <<-\EOF &&
protocol=https
host=example.com
EOF
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
EOF
ok 21 - helper (cache) can forget host
expecting success of 0301.22 'helper (cache) can store multiple users':
check approve $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user1
password=pass1
EOF
check approve $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user2
password=pass2
EOF
check fill $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user1
--
protocol=https
host=example.com
username=user1
password=pass1
EOF
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=user2
--
protocol=https
host=example.com
username=user2
password=pass2
EOF
ok 22 - helper (cache) can store multiple users
expecting success of 0301.23 'helper (cache) can forget user':
check reject $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user1
EOF
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=user1
--
protocol=https
host=example.com
username=user1
password=askpass-password
--
askpass: Password for 'https://user1@example.com':
EOF
ok 23 - helper (cache) can forget user
expecting success of 0301.24 'helper (cache) remembers other user':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=user2
--
protocol=https
host=example.com
username=user2
password=pass2
EOF
ok 24 - helper (cache) remembers other user
expecting success of 0301.25 'helper (cache) can store empty username':
check approve $HELPER <<-\EOF &&
protocol=https
host=sso.tld
username=
password=
EOF
check fill $HELPER <<-\EOF
protocol=https
host=sso.tld
--
protocol=https
host=sso.tld
username=
password=
EOF
ok 25 - helper (cache) can store empty username
expecting success of 0301.26 'use custom XDG_CACHE_HOME if set and default sockets are not created':
test_when_finished "git credential-cache exit" &&
test_path_is_socket "$XDG_CACHE_HOME/git/credential/socket" &&
test_path_is_missing "$HOME/.git-credential-cache/socket" &&
test_path_is_missing "$HOME/.cache/git/credential/socket"
ok 26 - use custom XDG_CACHE_HOME if set and default sockets are not created
expecting success of 0301.27 'credential-cache --socket option overrides default location':
test_when_finished "
git credential-cache exit --socket \"\$HOME/dir/socket\" &&
rmdir \"\$HOME/dir\"
" &&
check approve "cache --socket \"\$HOME/dir/socket\"" <<-\EOF &&
protocol=https
host=example.com
username=store-user
password=store-pass
EOF
test_path_is_socket "$HOME/dir/socket"
ok 27 - credential-cache --socket option overrides default location
expecting success of 0301.28 'use custom XDG_CACHE_HOME even if xdg socket exists':
test_when_finished "
git credential-cache exit &&
sane_unset XDG_CACHE_HOME
" &&
check approve cache <<-\EOF &&
protocol=https
host=example.com
username=store-user
password=store-pass
EOF
test_path_is_socket "$HOME/.cache/git/credential/socket" &&
XDG_CACHE_HOME="$HOME/xdg" &&
export XDG_CACHE_HOME &&
check approve cache <<-\EOF &&
protocol=https
host=example.com
username=store-user
password=store-pass
EOF
test_path_is_socket "$XDG_CACHE_HOME/git/credential/socket"
ok 28 - use custom XDG_CACHE_HOME even if xdg socket exists
expecting success of 0301.29 'use user socket if user directory exists':
test_when_finished "
git credential-cache exit &&
rmdir \"\$HOME/.git-credential-cache/\"
" &&
mkdir -p "$HOME/.git-credential-cache/" &&
chmod 700 "$HOME/.git-credential-cache/" &&
check approve cache <<-\EOF &&
protocol=https
host=example.com
username=store-user
password=store-pass
EOF
test_path_is_socket "$HOME/.git-credential-cache/socket"
ok 29 - use user socket if user directory exists
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 0301.30 'use user socket if user directory is a symlink to a directory':
test_when_finished "
git credential-cache exit &&
rmdir \"\$HOME/dir/\" &&
rm \"\$HOME/.git-credential-cache\"
" &&
mkdir -p -m 700 "$HOME/dir/" &&
ln -s "$HOME/dir" "$HOME/.git-credential-cache" &&
check approve cache <<-\EOF &&
protocol=https
host=example.com
username=store-user
password=store-pass
EOF
test_path_is_socket "$HOME/.git-credential-cache/socket"
ok 30 - use user socket if user directory is a symlink to a directory
expecting success of 0301.31 'helper (cache --timeout=1) times out':
check approve "$HELPER" <<-\EOF &&
protocol=https
host=timeout.tld
username=user
password=pass
EOF
sleep 2 &&
check fill "$HELPER" <<-\EOF
protocol=https
host=timeout.tld
--
protocol=https
host=timeout.tld
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://timeout.tld':
askpass: Password for 'https://askpass-username@timeout.tld':
EOF
ok 31 - helper (cache --timeout=1) times out
# passed all 31 test(s)
1..31
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0302-credential-store.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0302-credential-store/.git/
expecting success of 0302.1 'helper (store) has no existing data':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
EOF
ok 1 - helper (store) has no existing data
expecting success of 0302.2 'helper (store) stores password':
check approve $HELPER <<-\EOF
protocol=https
host=example.com
username=store-user
password=store-pass
EOF
ok 2 - helper (store) stores password
expecting success of 0302.3 'helper (store) can retrieve password':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=store-user
password=store-pass
--
EOF
ok 3 - helper (store) can retrieve password
expecting success of 0302.4 'helper (store) requires matching protocol':
check fill $HELPER <<-\EOF
protocol=http
host=example.com
--
protocol=http
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'http://example.com':
askpass: Password for 'http://askpass-username@example.com':
EOF
ok 4 - helper (store) requires matching protocol
expecting success of 0302.5 'helper (store) requires matching host':
check fill $HELPER <<-\EOF
protocol=https
host=other.tld
--
protocol=https
host=other.tld
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://other.tld':
askpass: Password for 'https://askpass-username@other.tld':
EOF
ok 5 - helper (store) requires matching host
expecting success of 0302.6 'helper (store) requires matching username':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=other
--
protocol=https
host=example.com
username=other
password=askpass-password
--
askpass: Password for 'https://other@example.com':
EOF
ok 6 - helper (store) requires matching username
expecting success of 0302.7 'helper (store) requires matching path':
test_config credential.usehttppath true &&
check approve $HELPER <<-\EOF &&
protocol=http
host=path.tld
path=foo.git
username=user
password=pass
EOF
check fill $HELPER <<-\EOF
protocol=http
host=path.tld
path=bar.git
--
protocol=http
host=path.tld
path=bar.git
username=askpass-username
password=askpass-password
--
askpass: Username for 'http://path.tld/bar.git':
askpass: Password for 'http://askpass-username@path.tld/bar.git':
EOF
ok 7 - helper (store) requires matching path
expecting success of 0302.8 'helper (store) can forget host':
check reject $HELPER <<-\EOF &&
protocol=https
host=example.com
EOF
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
EOF
ok 8 - helper (store) can forget host
expecting success of 0302.9 'helper (store) can store multiple users':
check approve $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user1
password=pass1
EOF
check approve $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user2
password=pass2
EOF
check fill $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user1
--
protocol=https
host=example.com
username=user1
password=pass1
EOF
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=user2
--
protocol=https
host=example.com
username=user2
password=pass2
EOF
ok 9 - helper (store) can store multiple users
expecting success of 0302.10 'helper (store) can forget user':
check reject $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user1
EOF
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=user1
--
protocol=https
host=example.com
username=user1
password=askpass-password
--
askpass: Password for 'https://user1@example.com':
EOF
ok 10 - helper (store) can forget user
expecting success of 0302.11 'helper (store) remembers other user':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=user2
--
protocol=https
host=example.com
username=user2
password=pass2
EOF
ok 11 - helper (store) remembers other user
expecting success of 0302.12 'helper (store) can store empty username':
check approve $HELPER <<-\EOF &&
protocol=https
host=sso.tld
username=
password=
EOF
check fill $HELPER <<-\EOF
protocol=https
host=sso.tld
--
protocol=https
host=sso.tld
username=
password=
EOF
ok 12 - helper (store) can store empty username
expecting success of 0302.13 'when xdg file does not exist, xdg file not created':
test_path_is_missing "$HOME/.config/git/credentials" &&
test -s "$HOME/.git-credentials"
ok 13 - when xdg file does not exist, xdg file not created
expecting success of 0302.14 'setup xdg file':
rm -f "$HOME/.git-credentials" &&
mkdir -p "$HOME/.config/git" &&
>"$HOME/.config/git/credentials"
ok 14 - setup xdg file
expecting success of 0302.15 'helper (store) has no existing data':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
EOF
ok 15 - helper (store) has no existing data
expecting success of 0302.16 'helper (store) stores password':
check approve $HELPER <<-\EOF
protocol=https
host=example.com
username=store-user
password=store-pass
EOF
ok 16 - helper (store) stores password
expecting success of 0302.17 'helper (store) can retrieve password':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=store-user
password=store-pass
--
EOF
ok 17 - helper (store) can retrieve password
expecting success of 0302.18 'helper (store) requires matching protocol':
check fill $HELPER <<-\EOF
protocol=http
host=example.com
--
protocol=http
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'http://example.com':
askpass: Password for 'http://askpass-username@example.com':
EOF
ok 18 - helper (store) requires matching protocol
expecting success of 0302.19 'helper (store) requires matching host':
check fill $HELPER <<-\EOF
protocol=https
host=other.tld
--
protocol=https
host=other.tld
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://other.tld':
askpass: Password for 'https://askpass-username@other.tld':
EOF
ok 19 - helper (store) requires matching host
expecting success of 0302.20 'helper (store) requires matching username':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=other
--
protocol=https
host=example.com
username=other
password=askpass-password
--
askpass: Password for 'https://other@example.com':
EOF
ok 20 - helper (store) requires matching username
expecting success of 0302.21 'helper (store) requires matching path':
test_config credential.usehttppath true &&
check approve $HELPER <<-\EOF &&
protocol=http
host=path.tld
path=foo.git
username=user
password=pass
EOF
check fill $HELPER <<-\EOF
protocol=http
host=path.tld
path=bar.git
--
protocol=http
host=path.tld
path=bar.git
username=askpass-username
password=askpass-password
--
askpass: Username for 'http://path.tld/bar.git':
askpass: Password for 'http://askpass-username@path.tld/bar.git':
EOF
ok 21 - helper (store) requires matching path
expecting success of 0302.22 'helper (store) can forget host':
check reject $HELPER <<-\EOF &&
protocol=https
host=example.com
EOF
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
EOF
ok 22 - helper (store) can forget host
expecting success of 0302.23 'helper (store) can store multiple users':
check approve $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user1
password=pass1
EOF
check approve $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user2
password=pass2
EOF
check fill $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user1
--
protocol=https
host=example.com
username=user1
password=pass1
EOF
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=user2
--
protocol=https
host=example.com
username=user2
password=pass2
EOF
ok 23 - helper (store) can store multiple users
expecting success of 0302.24 'helper (store) can forget user':
check reject $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user1
EOF
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=user1
--
protocol=https
host=example.com
username=user1
password=askpass-password
--
askpass: Password for 'https://user1@example.com':
EOF
ok 24 - helper (store) can forget user
expecting success of 0302.25 'helper (store) remembers other user':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=user2
--
protocol=https
host=example.com
username=user2
password=pass2
EOF
ok 25 - helper (store) remembers other user
expecting success of 0302.26 'helper (store) can store empty username':
check approve $HELPER <<-\EOF &&
protocol=https
host=sso.tld
username=
password=
EOF
check fill $HELPER <<-\EOF
protocol=https
host=sso.tld
--
protocol=https
host=sso.tld
username=
password=
EOF
ok 26 - helper (store) can store empty username
expecting success of 0302.27 'when xdg file exists, home file not created':
test -s "$HOME/.config/git/credentials" &&
test_path_is_missing "$HOME/.git-credentials"
ok 27 - when xdg file exists, home file not created
expecting success of 0302.28 'setup custom xdg file':
rm -f "$HOME/.git-credentials" &&
rm -f "$HOME/.config/git/credentials" &&
mkdir -p "$HOME/xdg/git" &&
>"$HOME/xdg/git/credentials"
ok 28 - setup custom xdg file
expecting success of 0302.29 'helper (store) has no existing data':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
EOF
ok 29 - helper (store) has no existing data
expecting success of 0302.30 'helper (store) stores password':
check approve $HELPER <<-\EOF
protocol=https
host=example.com
username=store-user
password=store-pass
EOF
ok 30 - helper (store) stores password
expecting success of 0302.31 'helper (store) can retrieve password':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=store-user
password=store-pass
--
EOF
ok 31 - helper (store) can retrieve password
expecting success of 0302.32 'helper (store) requires matching protocol':
check fill $HELPER <<-\EOF
protocol=http
host=example.com
--
protocol=http
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'http://example.com':
askpass: Password for 'http://askpass-username@example.com':
EOF
ok 32 - helper (store) requires matching protocol
expecting success of 0302.33 'helper (store) requires matching host':
check fill $HELPER <<-\EOF
protocol=https
host=other.tld
--
protocol=https
host=other.tld
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://other.tld':
askpass: Password for 'https://askpass-username@other.tld':
EOF
ok 33 - helper (store) requires matching host
expecting success of 0302.34 'helper (store) requires matching username':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=other
--
protocol=https
host=example.com
username=other
password=askpass-password
--
askpass: Password for 'https://other@example.com':
EOF
ok 34 - helper (store) requires matching username
expecting success of 0302.35 'helper (store) requires matching path':
test_config credential.usehttppath true &&
check approve $HELPER <<-\EOF &&
protocol=http
host=path.tld
path=foo.git
username=user
password=pass
EOF
check fill $HELPER <<-\EOF
protocol=http
host=path.tld
path=bar.git
--
protocol=http
host=path.tld
path=bar.git
username=askpass-username
password=askpass-password
--
askpass: Username for 'http://path.tld/bar.git':
askpass: Password for 'http://askpass-username@path.tld/bar.git':
EOF
ok 35 - helper (store) requires matching path
expecting success of 0302.36 'helper (store) can forget host':
check reject $HELPER <<-\EOF &&
protocol=https
host=example.com
EOF
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
EOF
ok 36 - helper (store) can forget host
expecting success of 0302.37 'helper (store) can store multiple users':
check approve $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user1
password=pass1
EOF
check approve $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user2
password=pass2
EOF
check fill $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user1
--
protocol=https
host=example.com
username=user1
password=pass1
EOF
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=user2
--
protocol=https
host=example.com
username=user2
password=pass2
EOF
ok 37 - helper (store) can store multiple users
expecting success of 0302.38 'helper (store) can forget user':
check reject $HELPER <<-\EOF &&
protocol=https
host=example.com
username=user1
EOF
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=user1
--
protocol=https
host=example.com
username=user1
password=askpass-password
--
askpass: Password for 'https://user1@example.com':
EOF
ok 38 - helper (store) can forget user
expecting success of 0302.39 'helper (store) remembers other user':
check fill $HELPER <<-\EOF
protocol=https
host=example.com
username=user2
--
protocol=https
host=example.com
username=user2
password=pass2
EOF
ok 39 - helper (store) remembers other user
expecting success of 0302.40 'helper (store) can store empty username':
check approve $HELPER <<-\EOF &&
protocol=https
host=sso.tld
username=
password=
EOF
check fill $HELPER <<-\EOF
protocol=https
host=sso.tld
--
protocol=https
host=sso.tld
username=
password=
EOF
ok 40 - helper (store) can store empty username
expecting success of 0302.41 'if custom xdg file exists, home and xdg files not created':
test_when_finished "rm -f \"$HOME/xdg/git/credentials\"" &&
test -s "$HOME/xdg/git/credentials" &&
test_path_is_missing "$HOME/.git-credentials" &&
test_path_is_missing "$HOME/.config/git/credentials"
ok 41 - if custom xdg file exists, home and xdg files not created
expecting success of 0302.42 'get: use home file if both home and xdg files have matches':
echo "https://home-user:home-pass@example.com" >"$HOME/.git-credentials" &&
mkdir -p "$HOME/.config/git" &&
echo "https://xdg-user:xdg-pass@example.com" >"$HOME/.config/git/credentials" &&
check fill store <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=home-user
password=home-pass
--
EOF
ok 42 - get: use home file if both home and xdg files have matches
expecting success of 0302.43 'get: use xdg file if home file has no matches':
>"$HOME/.git-credentials" &&
mkdir -p "$HOME/.config/git" &&
echo "https://xdg-user:xdg-pass@example.com" >"$HOME/.config/git/credentials" &&
check fill store <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=xdg-user
password=xdg-pass
--
EOF
ok 43 - get: use xdg file if home file has no matches
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 0302.44 'get: use xdg file if home file is unreadable':
echo "https://home-user:home-pass@example.com" >"$HOME/.git-credentials" &&
chmod -r "$HOME/.git-credentials" &&
mkdir -p "$HOME/.config/git" &&
echo "https://xdg-user:xdg-pass@example.com" >"$HOME/.config/git/credentials" &&
check fill store <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=xdg-user
password=xdg-pass
--
EOF
ok 44 - get: use xdg file if home file is unreadable
expecting success of 0302.45 'store: if both xdg and home files exist, only store in home file':
>"$HOME/.git-credentials" &&
mkdir -p "$HOME/.config/git" &&
>"$HOME/.config/git/credentials" &&
check approve store <<-\EOF &&
protocol=https
host=example.com
username=store-user
password=store-pass
EOF
echo "https://store-user:store-pass@example.com" >expected &&
test_cmp expected "$HOME/.git-credentials" &&
test_must_be_empty "$HOME/.config/git/credentials"
ok 45 - store: if both xdg and home files exist, only store in home file
expecting success of 0302.46 'erase: erase matching credentials from both xdg and home files':
echo "https://home-user:home-pass@example.com" >"$HOME/.git-credentials" &&
mkdir -p "$HOME/.config/git" &&
echo "https://xdg-user:xdg-pass@example.com" >"$HOME/.config/git/credentials" &&
check reject store <<-\EOF &&
protocol=https
host=example.com
EOF
test_must_be_empty "$HOME/.git-credentials" &&
test_must_be_empty "$HOME/.config/git/credentials"
ok 46 - erase: erase matching credentials from both xdg and home files
expecting success of 0302.47 'get: ignore credentials without scheme as invalid':
echo "$2" >"$HOME/.git-credentials" &&
check fill store <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
--
EOF
ok 47 - get: ignore credentials without scheme as invalid
expecting success of 0302.48 'get: ignore credentials without valid host/path as invalid':
echo "$2" >"$HOME/.git-credentials" &&
check fill store <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
--
EOF
ok 48 - get: ignore credentials without valid host/path as invalid
expecting success of 0302.49 'get: ignore credentials without username/password as invalid':
echo "$2" >"$HOME/.git-credentials" &&
check fill store <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
--
EOF
ok 49 - get: ignore credentials without username/password as invalid
expecting success of 0302.50 'get: credentials with DOS line endings are invalid':
printf "https://user:pass@example.com\r\n" >"$HOME/.git-credentials" &&
check fill store <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
--
EOF
ok 50 - get: credentials with DOS line endings are invalid
expecting success of 0302.51 'get: credentials with path and DOS line endings are valid':
printf "https://user:pass@example.com/repo.git\r\n" >"$HOME/.git-credentials" &&
check fill store <<-\EOF
url=https://example.com/repo.git
--
protocol=https
host=example.com
username=user
password=pass
--
EOF
ok 51 - get: credentials with path and DOS line endings are valid
expecting success of 0302.52 'get: credentials with DOS line endings are invalid if path is relevant':
printf "https://user:pass@example.com/repo.git\r\n" >"$HOME/.git-credentials" &&
test_config credential.useHttpPath true &&
check fill store <<-\EOF
url=https://example.com/repo.git
--
protocol=https
host=example.com
path=repo.git
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com/repo.git':
askpass: Password for 'https://askpass-username@example.com/repo.git':
--
EOF
ok 52 - get: credentials with DOS line endings are invalid if path is relevant
expecting success of 0302.53 'get: store file can contain empty/bogus lines':
echo "" >"$HOME/.git-credentials" &&
q_to_tab <<-\CREDENTIAL >>"$HOME/.git-credentials" &&
#comment
Q
https://user:pass@example.com
CREDENTIAL
check fill store <<-\EOF
protocol=https
host=example.com
--
protocol=https
host=example.com
username=user
password=pass
--
EOF
ok 53 - get: store file can contain empty/bogus lines
# passed all 53 test(s)
1..53
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0500-progress-display.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0500-progress-display/.git/
expecting success of 0500.1 'simple progress display':
cat >expect <<-\EOF &&
Working hard: 1<CR>
Working hard: 2<CR>
Working hard: 5<CR>
Working hard: 5, done.
EOF
cat >in <<-\EOF &&
start 0
update
progress 1
update
progress 2
progress 3
progress 4
update
progress 5
stop
EOF
test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp expect out
ok 1 - simple progress display
expecting success of 0500.2 'progress display with total':
cat >expect <<-\EOF &&
Working hard: 33% (1/3)<CR>
Working hard: 66% (2/3)<CR>
Working hard: 100% (3/3)<CR>
Working hard: 100% (3/3), done.
EOF
cat >in <<-\EOF &&
start 3
progress 1
progress 2
progress 3
stop
EOF
test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp 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)<CR>
Working hard.......2.........3.........4.........5.........6: 1% (1000/100000)<CR>
Working hard.......2.........3.........4.........5.........6: Z
10% (10000/100000)<CR>
100% (100000/100000)<CR>
100% (100000/100000), done.
EOF
cat >in <<-\EOF &&
start 100000 Working hard.......2.........3.........4.........5.........6
progress 100
progress 1000
progress 10000
progress 100000
stop
EOF
test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp 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)<CR>
Working hard.......2.........3.........4.........5.........6: 0% (2/100000)<CR>
Working hard.......2.........3.........4.........5.........6: Z
10% (10000/100000)<CR>
100% (100000/100000)<CR>
100% (100000/100000), done.
EOF
cat >in <<-\EOF &&
start 100000 Working hard.......2.........3.........4.........5.........6
update
progress 1
update
progress 2
progress 10000
progress 100000
stop
EOF
test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp 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)<CR>
50% (50000/100000)<CR>
75% (75000/100000)<CR>
100% (100000/100000)<CR>
100% (100000/100000), done.
EOF
cat >in <<-\EOF &&
start 100000 Working hard.......2.........3.........4.........5.........6
progress 25000
progress 50000
progress 75000
progress 100000
stop
EOF
test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp 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)<CR>
50% (50000/100000)<CR>
75% (75000/100000)<CR>
100% (100000/100000)<CR>
100% (100000/100000), done.
EOF
cat >in <<-\EOF &&
start 100000 Working hard.......2.........3.........4.........5.........6.........7.........
progress 25000
progress 50000
progress 75000
progress 100000
stop
EOF
test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp 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)<CR>
Working hard: 20% (200/1000)<CR>
Working hard: 0% (1/1000) <CR>
Working hard: 100% (1000/1000)<CR>
Working hard: 100% (1000/1000), done.
EOF
cat >in <<-\EOF &&
start 1000
progress 100
progress 200
progress 1
progress 1000
stop
EOF
test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp expect out
ok 7 - progress shortens - crazy caller
expecting success of 0500.8 'progress display with throughput':
cat >expect <<-\EOF &&
Working hard: 10<CR>
Working hard: 20, 200.00 KiB | 100.00 KiB/s<CR>
Working hard: 30, 300.00 KiB | 100.00 KiB/s<CR>
Working hard: 40, 400.00 KiB | 100.00 KiB/s<CR>
Working hard: 40, 400.00 KiB | 100.00 KiB/s, done.
EOF
cat >in <<-\EOF &&
start 0
throughput 102400 1000
update
progress 10
throughput 204800 2000
update
progress 20
throughput 307200 3000
update
progress 30
throughput 409600 4000
update
progress 40
stop
EOF
test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp 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)<CR>
Working hard: 50% (20/40), 200.00 KiB | 100.00 KiB/s<CR>
Working hard: 75% (30/40), 300.00 KiB | 100.00 KiB/s<CR>
Working hard: 100% (40/40), 400.00 KiB | 100.00 KiB/s<CR>
Working hard: 100% (40/40), 400.00 KiB | 100.00 KiB/s, done.
EOF
cat >in <<-\EOF &&
start 40
throughput 102400 1000
progress 10
throughput 204800 2000
progress 20
throughput 307200 3000
progress 30
throughput 409600 4000
progress 40
stop
EOF
test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp 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<CR>
Working hard: 2, 800.00 KiB | 400.00 KiB/s<CR>
Working hard: 3, 1.17 MiB | 400.00 KiB/s <CR>
Working hard: 4, 1.56 MiB | 400.00 KiB/s<CR>
Working hard: 4, 1.56 MiB | 400.00 KiB/s, done.
EOF
cat >in <<-\EOF &&
start 0
throughput 409600 1000
update
progress 1
throughput 819200 2000
update
progress 2
throughput 1228800 3000
update
progress 3
throughput 1638400 4000
update
progress 4
stop
EOF
test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp 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<CR>
Working hard: 2, 1000.00 KiB | 1000.00 KiB/s<CR>
Working hard: 3, 3.00 MiB | 1.50 MiB/s <CR>
Working hard: 3, 3.00 MiB | 1024.00 KiB/s, done.
EOF
cat >in <<-\EOF &&
start 0
throughput 1 1000
update
progress 1
throughput 1024000 2000
update
progress 2
throughput 3145728 3000
update
progress 3
stop
EOF
test-tool progress <in 2>stderr &&
show_cr <stderr >out &&
test_cmp expect out
ok 11 - cover up after throughput shortens a lot
expecting success of 0500.12 'progress generates traces':
cat >in <<-\EOF &&
start 40
throughput 102400 1000
update
progress 10
throughput 204800 2000
update
progress 20
throughput 307200 3000
update
progress 30
throughput 409600 4000
update
progress 40
stop
EOF
GIT_TRACE2_EVENT="$(pwd)/trace.event" test-tool progress \
<in 2>stderr &&
# t0212/parse_events.perl intentionally omits regions and data.
test_region progress "Working hard" trace.event &&
grep "\"key\":\"total_objects\",\"value\":\"40\"" trace.event &&
grep "\"key\":\"total_bytes\",\"value\":\"409600\"" trace.event
{"event":"region_enter","sid":"20230916T191040.534402Z-Hc54f2dd4-P000006f5","thread":"main","time":"2023-09-16T19:10:40.536514Z","file":"progress.c","line":268,"repo":0,"nesting":1,"category":"progress","label":"Working hard"}
{"event":"region_leave","sid":"20230916T191040.534402Z-Hc54f2dd4-P000006f5","thread":"main","time":"2023-09-16T19:10:40.537009Z","file":"progress.c","line":346,"repo":0,"t_rel":0.000498,"nesting":1,"category":"progress","label":"Working hard"}
{"event":"data","sid":"20230916T191040.534402Z-Hc54f2dd4-P000006f5","thread":"main","time":"2023-09-16T19:10:40.536860Z","file":"progress.c","line":339,"repo":0,"t_abs":0.008973,"t_rel":0.000345,"nesting":2,"category":"progress","key":"total_objects","value":"40"}
{"event":"data","sid":"20230916T191040.534402Z-Hc54f2dd4-P000006f5","thread":"main","time":"2023-09-16T19:10:40.536943Z","file":"progress.c","line":343,"repo":0,"t_abs":0.009060,"t_rel":0.000432,"nesting":2,"category":"progress","key":"total_bytes","value":"409600"}
ok 12 - progress generates traces
expecting success of 0500.13 'progress generates traces: stop / start':
cat >in <<-\EOF &&
start 0
stop
EOF
GIT_TRACE2_EVENT="$PWD/trace-startstop.event" test-tool progress \
<in 2>stderr &&
test_region progress "Working hard" trace-startstop.event
{"event":"region_enter","sid":"20230916T191040.617657Z-Hc54f2dd4-P00000717","thread":"main","time":"2023-09-16T19:10:40.625409Z","file":"progress.c","line":268,"repo":0,"nesting":1,"category":"progress","label":"Working hard"}
{"event":"region_leave","sid":"20230916T191040.617657Z-Hc54f2dd4-P00000717","thread":"main","time":"2023-09-16T19:10:40.625584Z","file":"progress.c","line":346,"repo":0,"t_rel":0.000177,"nesting":1,"category":"progress","label":"Working hard"}
ok 13 - progress generates traces: stop / start
expecting success of 0500.14 'progress generates traces: start without stop':
cat >in <<-\EOF &&
start 0
EOF
GIT_TRACE2_EVENT="$PWD/trace-start.event" \
LSAN_OPTIONS=detect_leaks=0 \
test-tool progress \
<in 2>stderr &&
grep region_enter.*progress trace-start.event &&
! grep region_leave.*progress trace-start.event
{"event":"region_enter","sid":"20230916T191040.687989Z-Hc54f2dd4-P00000739","thread":"main","time":"2023-09-16T19:10:40.690033Z","file":"progress.c","line":268,"repo":0,"nesting":1,"category":"progress","label":"Working hard"}
ok 14 - progress generates traces: start without stop
expecting success of 0500.15 'progress generates traces: stop without start':
cat >in <<-\EOF &&
stop
EOF
GIT_TRACE2_EVENT="$PWD/trace-stop.event" test-tool progress \
<in 2>stderr &&
! grep region_enter.*progress trace-stop.event &&
! grep region_leave.*progress trace-stop.event
ok 15 - progress generates traces: stop without start
expecting success of 0500.16 'progress generates traces: start with active progress bar (no stops)':
cat >in <<-\EOF &&
start 0 One
start 0 Two
EOF
GIT_TRACE2_EVENT="$PWD/trace-2start.event" \
LSAN_OPTIONS=detect_leaks=0 \
test-tool progress \
<in 2>stderr &&
grep region_enter.*progress.*One trace-2start.event &&
grep region_enter.*progress.*Two trace-2start.event &&
! grep region_leave trace-2start.event
{"event":"region_enter","sid":"20230916T191040.813753Z-Hc54f2dd4-P00000773","thread":"main","time":"2023-09-16T19:10:40.815827Z","file":"progress.c","line":268,"repo":0,"nesting":1,"category":"progress","label":"One"}
{"event":"region_enter","sid":"20230916T191040.813753Z-Hc54f2dd4-P00000773","thread":"main","time":"2023-09-16T19:10:40.815898Z","file":"progress.c","line":268,"repo":0,"nesting":2,"category":"progress","label":"Two"}
ok 16 - progress generates traces: start with active progress bar (no stops)
# passed all 16 test(s)
1..16
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1000-read-tree-m-3way.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1000-read-tree-m-3way/.git/
expecting success of 1000.1 'adding test file NN and Z/NN':
git update-index --add $p &&
git update-index --add Z/$p
ok 1 - adding test file NN and Z/NN
expecting success of 1000.2 'adding test file ND and Z/ND':
git update-index --add $p &&
git update-index --add Z/$p
ok 2 - adding test file ND and Z/ND
expecting success of 1000.3 'adding test file NM and Z/NM':
git update-index --add $p &&
git update-index --add Z/$p
ok 3 - adding test file NM and Z/NM
expecting success of 1000.4 'adding test file DN and Z/DN':
git update-index --add $p &&
git update-index --add Z/$p
ok 4 - adding test file DN and Z/DN
expecting success of 1000.5 'adding test file DD and Z/DD':
git update-index --add $p &&
git update-index --add Z/$p
ok 5 - adding test file DD and Z/DD
expecting success of 1000.6 'adding test file DM and Z/DM':
git update-index --add $p &&
git update-index --add Z/$p
ok 6 - adding test file DM and Z/DM
expecting success of 1000.7 'adding test file MN and Z/MN':
git update-index --add $p &&
git update-index --add Z/$p
ok 7 - adding test file MN and Z/MN
expecting success of 1000.8 'adding test file MD and Z/MD':
git update-index --add $p &&
git update-index --add Z/$p
ok 8 - adding test file MD and Z/MD
expecting success of 1000.9 'adding test file MM and Z/MM':
git update-index --add $p &&
git update-index --add Z/$p
ok 9 - adding test file MM and Z/MM
expecting success of 1000.10 'adding test file SS':
git update-index --add SS
ok 10 - adding test file SS
expecting success of 1000.11 'adding test file TT':
git update-index --add TT
ok 11 - adding test file TT
expecting success of 1000.12 'prepare initial tree':
tree_O=$(git write-tree)
ok 12 - prepare initial tree
expecting success of 1000.13 'change in branch A (removal)':
git update-index --remove $to_remove
ok 13 - change in branch A (removal)
expecting success of 1000.14 'change in branch A (modification)':
git update-index $p
ok 14 - change in branch A (modification)
expecting success of 1000.15 'change in branch A (modification)':
git update-index $p
ok 15 - change in branch A (modification)
expecting success of 1000.16 'change in branch A (modification)':
git update-index $p
ok 16 - change in branch A (modification)
expecting success of 1000.17 'change in branch A (modification)':
git update-index $p
ok 17 - change in branch A (modification)
expecting success of 1000.18 'change in branch A (modification)':
git update-index $p
ok 18 - change in branch A (modification)
expecting success of 1000.19 'change in branch A (modification)':
git update-index $p
ok 19 - change in branch A (modification)
expecting success of 1000.20 'change in branch A (addition)':
git update-index --add $p
ok 20 - change in branch A (addition)
expecting success of 1000.21 'change in branch A (addition)':
git update-index --add $p
ok 21 - change in branch A (addition)
expecting success of 1000.22 'change in branch A (addition)':
git update-index --add $p
ok 22 - change in branch A (addition)
expecting success of 1000.23 'change in branch A (addition)':
git update-index --add $p
ok 23 - change in branch A (addition)
expecting success of 1000.24 'change in branch A (addition)':
git update-index --add LL &&
git update-index SS
ok 24 - change in branch A (addition)
expecting success of 1000.25 'change in branch A (edit)':
git update-index TT
ok 25 - change in branch A (edit)
expecting success of 1000.26 'change in branch A (change file to directory)':
git update-index --add DF/DF
ok 26 - change in branch A (change file to directory)
expecting success of 1000.27 'recording branch A tree':
tree_A=$(git write-tree)
ok 27 - recording branch A tree
expecting success of 1000.28 'reading original tree and checking out':
git read-tree $tree_O &&
git checkout-index -a
ok 28 - reading original tree and checking out
expecting success of 1000.29 'change in branch B (removal)':
git update-index --remove $to_remove
ok 29 - change in branch B (removal)
expecting success of 1000.30 'change in branch B (modification)':
git update-index $p
ok 30 - change in branch B (modification)
expecting success of 1000.31 'change in branch B (modification)':
git update-index $p
ok 31 - change in branch B (modification)
expecting success of 1000.32 'change in branch B (modification)':
git update-index $p
ok 32 - change in branch B (modification)
expecting success of 1000.33 'change in branch B (modification)':
git update-index $p
ok 33 - change in branch B (modification)
expecting success of 1000.34 'change in branch B (modification)':
git update-index $p
ok 34 - change in branch B (modification)
expecting success of 1000.35 'change in branch B (modification)':
git update-index $p
ok 35 - change in branch B (modification)
expecting success of 1000.36 'change in branch B (addition)':
git update-index --add $p
ok 36 - change in branch B (addition)
expecting success of 1000.37 'change in branch B (addition)':
git update-index --add $p
ok 37 - change in branch B (addition)
expecting success of 1000.38 'change in branch B (addition)':
git update-index --add $p
ok 38 - change in branch B (addition)
expecting success of 1000.39 'change in branch B (addition)':
git update-index --add $p
ok 39 - change in branch B (addition)
expecting success of 1000.40 'change in branch B (addition and modification)':
git update-index --add LL &&
git update-index SS
ok 40 - change in branch B (addition and modification)
expecting success of 1000.41 'change in branch B (modification)':
git update-index TT
ok 41 - change in branch B (modification)
expecting success of 1000.42 'change in branch B (addition of a file to conflict with directory)':
git update-index --add DF
ok 42 - change in branch B (addition of a file to conflict with directory)
expecting success of 1000.43 'recording branch B tree':
tree_B=$(git write-tree)
ok 43 - recording branch B tree
expecting success of 1000.44 'keep contents of 3 trees for easy access':
rm -f .git/index &&
git read-tree $tree_O &&
mkdir .orig-O &&
git checkout-index --prefix=.orig-O/ -f -q -a &&
rm -f .git/index &&
git read-tree $tree_A &&
mkdir .orig-A &&
git checkout-index --prefix=.orig-A/ -f -q -a &&
rm -f .git/index &&
git read-tree $tree_B &&
mkdir .orig-B &&
git checkout-index --prefix=.orig-B/ -f -q -a
ok 44 - keep contents of 3 trees for easy access
expecting success of 1000.45 '3-way merge with git read-tree -m, empty cache':
rm -fr [NDMALTS][NDMALTSF] Z &&
rm .git/index &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
check_result
ok 45 - 3-way merge with git read-tree -m, empty cache
expecting success of 1000.46 '3-way merge with git read-tree -m, match H':
rm -fr [NDMALTS][NDMALTSF] Z &&
rm .git/index &&
read_tree_must_succeed $tree_A &&
git checkout-index -f -u -a &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
check_result
ok 46 - 3-way merge with git read-tree -m, match H
expecting success of 1000.47 '1 - must not have an entry not in A.':
rm -f .git/index XX &&
echo XX >XX &&
git update-index --add XX &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'XX' would be overwritten by merge. Cannot merge.
error: Entry 'XX' would be overwritten by merge. Cannot merge.
ok 47 - 1 - must not have an entry not in A.
expecting success of 1000.48 '2 - must match B in !O && !A && B case.':
rm -f .git/index NA &&
cp .orig-B/NA NA &&
git update-index --add NA &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B
ok 48 - 2 - must match B in !O && !A && B case.
expecting success of 1000.49 '2 - matching B alone is OK in !O && !A && B case.':
rm -f .git/index NA &&
cp .orig-B/NA NA &&
git update-index --add NA &&
echo extra >>NA &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B
ok 49 - 2 - matching B alone is OK in !O && !A && B case.
expecting success of 1000.50 '3 - must match A in !O && A && !B case.':
rm -f .git/index AN &&
cp .orig-A/AN AN &&
git update-index --add AN &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
check_result
ok 50 - 3 - must match A in !O && A && !B case.
expecting success of 1000.51 '3 - matching A alone is OK in !O && A && !B case.':
rm -f .git/index AN &&
cp .orig-A/AN AN &&
git update-index --add AN &&
echo extra >>AN &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B
ok 51 - 3 - matching A alone is OK in !O && A && !B case.
expecting success of 1000.52 '3 (fail) - must match A in !O && A && !B case.':
rm -f .git/index AN &&
cp .orig-A/AN AN &&
echo extra >>AN &&
git update-index --add AN &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'AN' would be overwritten by merge. Cannot merge.
error: Entry 'AN' would be overwritten by merge. Cannot merge.
ok 52 - 3 (fail) - must match A in !O && A && !B case.
expecting success of 1000.53 '4 - must match and be up-to-date in !O && A && B && A!=B case.':
rm -f .git/index AA &&
cp .orig-A/AA AA &&
git update-index --add AA &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
check_result
ok 53 - 4 - must match and be up-to-date in !O && A && B && A!=B case.
expecting success of 1000.54 '4 (fail) - must match and be up-to-date in !O && A && B && A!=B case.':
rm -f .git/index AA &&
cp .orig-A/AA AA &&
git update-index --add AA &&
echo extra >>AA &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'AA' not uptodate. Cannot merge.
error: Entry 'AA' not uptodate. Cannot merge.
ok 54 - 4 (fail) - must match and be up-to-date in !O && A && B && A!=B case.
expecting success of 1000.55 '4 (fail) - must match and be up-to-date in !O && A && B && A!=B case.':
rm -f .git/index AA &&
cp .orig-A/AA AA &&
echo extra >>AA &&
git update-index --add AA &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'AA' would be overwritten by merge. Cannot merge.
error: Entry 'AA' would be overwritten by merge. Cannot merge.
ok 55 - 4 (fail) - must match and be up-to-date in !O && A && B && A!=B case.
expecting success of 1000.56 '5 - must match in !O && A && B && A==B case.':
rm -f .git/index LL &&
cp .orig-A/LL LL &&
git update-index --add LL &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
check_result
ok 56 - 5 - must match in !O && A && B && A==B case.
expecting success of 1000.57 '5 - must match in !O && A && B && A==B case.':
rm -f .git/index LL &&
cp .orig-A/LL LL &&
git update-index --add LL &&
echo extra >>LL &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
check_result
ok 57 - 5 - must match in !O && A && B && A==B case.
expecting success of 1000.58 '5 (fail) - must match A in !O && A && B && A==B case.':
rm -f .git/index LL &&
cp .orig-A/LL LL &&
echo extra >>LL &&
git update-index --add LL &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'LL' would be overwritten by merge. Cannot merge.
error: Entry 'LL' would be overwritten by merge. Cannot merge.
ok 58 - 5 (fail) - must match A in !O && A && B && A==B case.
expecting success of 1000.59 '6 - must not exist in O && !A && !B case':
rm -f .git/index DD &&
echo DD >DD &&
git update-index --add DD &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'DD' would be overwritten by merge. Cannot merge.
error: Entry 'DD' would be overwritten by merge. Cannot merge.
ok 59 - 6 - must not exist in O && !A && !B case
expecting success of 1000.60 '7 - must not exist in O && !A && B && O!=B case':
rm -f .git/index DM &&
cp .orig-B/DM DM &&
git update-index --add DM &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'DM' would be overwritten by merge. Cannot merge.
error: Entry 'DM' would be overwritten by merge. Cannot merge.
ok 60 - 7 - must not exist in O && !A && B && O!=B case
expecting success of 1000.61 '8 - must not exist in O && !A && B && O==B case':
rm -f .git/index DN &&
cp .orig-B/DN DN &&
git update-index --add DN &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'DN' would be overwritten by merge. Cannot merge.
error: Entry 'DN' would be overwritten by merge. Cannot merge.
ok 61 - 8 - must not exist in O && !A && B && O==B case
expecting success of 1000.62 '9 - must match and be up-to-date in O && A && !B && O!=A case':
rm -f .git/index MD &&
cp .orig-A/MD MD &&
git update-index --add MD &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
check_result
ok 62 - 9 - must match and be up-to-date in O && A && !B && O!=A case
expecting success of 1000.63 '9 (fail) - must match and be up-to-date in O && A && !B && O!=A case':
rm -f .git/index MD &&
cp .orig-A/MD MD &&
git update-index --add MD &&
echo extra >>MD &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'MD' not uptodate. Cannot merge.
error: Entry 'MD' not uptodate. Cannot merge.
ok 63 - 9 (fail) - must match and be up-to-date in O && A && !B && O!=A case
expecting success of 1000.64 '9 (fail) - must match and be up-to-date in O && A && !B && O!=A case':
rm -f .git/index MD &&
cp .orig-A/MD MD &&
echo extra >>MD &&
git update-index --add MD &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'MD' would be overwritten by merge. Cannot merge.
error: Entry 'MD' would be overwritten by merge. Cannot merge.
ok 64 - 9 (fail) - must match and be up-to-date in O && A && !B && O!=A case
expecting success of 1000.65 '10 - must match and be up-to-date in O && A && !B && O==A case':
rm -f .git/index ND &&
cp .orig-A/ND ND &&
git update-index --add ND &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
check_result
ok 65 - 10 - must match and be up-to-date in O && A && !B && O==A case
expecting success of 1000.66 '10 (fail) - must match and be up-to-date in O && A && !B && O==A case':
rm -f .git/index ND &&
cp .orig-A/ND ND &&
git update-index --add ND &&
echo extra >>ND &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'ND' not uptodate. Cannot merge.
error: Entry 'ND' not uptodate. Cannot merge.
ok 66 - 10 (fail) - must match and be up-to-date in O && A && !B && O==A case
expecting success of 1000.67 '10 (fail) - must match and be up-to-date in O && A && !B && O==A case':
rm -f .git/index ND &&
cp .orig-A/ND ND &&
echo extra >>ND &&
git update-index --add ND &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'ND' would be overwritten by merge. Cannot merge.
error: Entry 'ND' would be overwritten by merge. Cannot merge.
ok 67 - 10 (fail) - must match and be up-to-date in O && A && !B && O==A case
expecting success of 1000.68 '11 - must match and be up-to-date in O && A && B && O!=A && O!=B && A!=B case':
rm -f .git/index MM &&
cp .orig-A/MM MM &&
git update-index --add MM &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
check_result
ok 68 - 11 - must match and be up-to-date in O && A && B && O!=A && O!=B && A!=B case
expecting success of 1000.69 '11 (fail) - must match and be up-to-date in O && A && B && O!=A && O!=B && A!=B case':
rm -f .git/index MM &&
cp .orig-A/MM MM &&
git update-index --add MM &&
echo extra >>MM &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'MM' not uptodate. Cannot merge.
error: Entry 'MM' not uptodate. Cannot merge.
ok 69 - 11 (fail) - must match and be up-to-date in O && A && B && O!=A && O!=B && A!=B case
expecting success of 1000.70 '11 (fail) - must match and be up-to-date in O && A && B && O!=A && O!=B && A!=B case':
rm -f .git/index MM &&
cp .orig-A/MM MM &&
echo extra >>MM &&
git update-index --add MM &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'MM' would be overwritten by merge. Cannot merge.
error: Entry 'MM' would be overwritten by merge. Cannot merge.
ok 70 - 11 (fail) - must match and be up-to-date in O && A && B && O!=A && O!=B && A!=B case
expecting success of 1000.71 '12 - must match A in O && A && B && O!=A && A==B case':
rm -f .git/index SS &&
cp .orig-A/SS SS &&
git update-index --add SS &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
check_result
ok 71 - 12 - must match A in O && A && B && O!=A && A==B case
expecting success of 1000.72 '12 - must match A in O && A && B && O!=A && A==B case':
rm -f .git/index SS &&
cp .orig-A/SS SS &&
git update-index --add SS &&
echo extra >>SS &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
check_result
ok 72 - 12 - must match A in O && A && B && O!=A && A==B case
expecting success of 1000.73 '12 (fail) - must match A in O && A && B && O!=A && A==B case':
rm -f .git/index SS &&
cp .orig-A/SS SS &&
echo extra >>SS &&
git update-index --add SS &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'SS' would be overwritten by merge. Cannot merge.
error: Entry 'SS' would be overwritten by merge. Cannot merge.
ok 73 - 12 (fail) - must match A in O && A && B && O!=A && A==B case
expecting success of 1000.74 '13 - must match A in O && A && B && O!=A && O==B case':
rm -f .git/index MN &&
cp .orig-A/MN MN &&
git update-index --add MN &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
check_result
ok 74 - 13 - must match A in O && A && B && O!=A && O==B case
expecting success of 1000.75 '13 - must match A in O && A && B && O!=A && O==B case':
rm -f .git/index MN &&
cp .orig-A/MN MN &&
git update-index --add MN &&
echo extra >>MN &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
check_result
ok 75 - 13 - must match A in O && A && B && O!=A && O==B case
expecting success of 1000.76 '14 - must match and be up-to-date in O && A && B && O==A && O!=B case':
rm -f .git/index NM &&
cp .orig-A/NM NM &&
git update-index --add NM &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
check_result
ok 76 - 14 - must match and be up-to-date in O && A && B && O==A && O!=B case
expecting success of 1000.77 '14 - may match B in O && A && B && O==A && O!=B case':
rm -f .git/index NM &&
cp .orig-B/NM NM &&
git update-index --add NM &&
echo extra >>NM &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
check_result
ok 77 - 14 - may match B in O && A && B && O==A && O!=B case
expecting success of 1000.78 '14 (fail) - must match and be up-to-date in O && A && B && O==A && O!=B case':
rm -f .git/index NM &&
cp .orig-A/NM NM &&
git update-index --add NM &&
echo extra >>NM &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'NM' not uptodate. Cannot merge.
error: Entry 'NM' not uptodate. Cannot merge.
ok 78 - 14 (fail) - must match and be up-to-date in O && A && B && O==A && O!=B case
expecting success of 1000.79 '14 (fail) - must match and be up-to-date in O && A && B && O==A && O!=B case':
rm -f .git/index NM &&
cp .orig-A/NM NM &&
echo extra >>NM &&
git update-index --add NM &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'NM' would be overwritten by merge. Cannot merge.
error: Entry 'NM' would be overwritten by merge. Cannot merge.
ok 79 - 14 (fail) - must match and be up-to-date in O && A && B && O==A && O!=B case
expecting success of 1000.80 '15 - must match A in O && A && B && O==A && O==B case':
rm -f .git/index NN &&
cp .orig-A/NN NN &&
git update-index --add NN &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
check_result
ok 80 - 15 - must match A in O && A && B && O==A && O==B case
expecting success of 1000.81 '15 - must match A in O && A && B && O==A && O==B case':
rm -f .git/index NN &&
cp .orig-A/NN NN &&
git update-index --add NN &&
echo extra >>NN &&
read_tree_must_succeed -m $tree_O $tree_A $tree_B &&
check_result
ok 81 - 15 - must match A in O && A && B && O==A && O==B case
expecting success of 1000.82 '15 (fail) - must match A in O && A && B && O==A && O==B case':
rm -f .git/index NN &&
cp .orig-A/NN NN &&
echo extra >>NN &&
git update-index --add NN &&
read_tree_must_fail -m $tree_O $tree_A $tree_B
error: Entry 'NN' would be overwritten by merge. Cannot merge.
error: Entry 'NN' would be overwritten by merge. Cannot merge.
ok 82 - 15 (fail) - must match A in O && A && B && O==A && O==B case
expecting success of 1000.83 '16 - A matches in one and B matches in another.':
rm -f .git/index F16 &&
echo F16 >F16 &&
git update-index --add F16 &&
tree0=$(git write-tree) &&
echo E16 >F16 &&
git update-index F16 &&
tree1=$(git write-tree) &&
read_tree_must_succeed -m $tree0 $tree1 $tree1 $tree0 &&
git ls-files --stage
100644 ecbec6db011caa3ae26739812f092f76875fe6b6 2 F16
100644 bcf4afda2c30299bf6538240d40bcb8fb3857691 3 F16
ok 83 - 16 - A matches in one and B matches in another.
# passed all 83 test(s)
1..83
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0410-partial-clone.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/.git/
expecting success of 0410.1 'extensions.partialclone without filter':
test_create_repo server &&
git clone --filter="blob:none" "file://$(pwd)/server" client &&
git -C client config --unset remote.origin.partialclonefilter &&
git -C client fetch origin
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/server/.git/
Cloning into 'client'...
warning: You appear to have cloned an empty repository.
ok 1 - extensions.partialclone without filter
expecting success of 0410.2 'convert shallow clone to partial clone':
rm -fr server client &&
test_create_repo server &&
test_commit -C server my_commit 1 &&
test_commit -C server my_commit2 1 &&
git clone --depth=1 "file://$(pwd)/server" client &&
git -C client fetch --unshallow --filter="blob:none" &&
test_cmp_config -C client true remote.origin.promisor &&
test_cmp_config -C client blob:none remote.origin.partialclonefilter &&
test_cmp_config -C client 1 core.repositoryformatversion
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/server/.git/
[master (root-commit) 282d88a] my_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 1
[master b56a127] my_commit2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Cloning into 'client'...
warning: filtering not recognized by server, ignoring
warning: filtering not recognized by server, ignoring
From file:///<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/server
* [new tag] my_commit -> my_commit
ok 2 - convert shallow clone to partial clone
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 0410.3 'convert to partial clone with noop extension':
rm -fr server client &&
test_create_repo server &&
test_commit -C server my_commit 1 &&
test_commit -C server my_commit2 1 &&
git clone --depth=1 "file://$(pwd)/server" client &&
test_cmp_config -C client 0 core.repositoryformatversion &&
git -C client config extensions.noop true &&
git -C client fetch --unshallow --filter="blob:none"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/server/.git/
[master (root-commit) 593c6ee] my_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 1
[master 639877a] my_commit2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Cloning into 'client'...
warning: filtering not recognized by server, ignoring
warning: filtering not recognized by server, ignoring
From file:///<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/server
* [new tag] my_commit -> my_commit
ok 3 - convert to partial clone with noop extension
expecting success of 0410.4 'converting to partial clone fails with unrecognized extension':
rm -fr server client &&
test_create_repo server &&
test_commit -C server my_commit 1 &&
test_commit -C server my_commit2 1 &&
git clone --depth=1 "file://$(pwd)/server" client &&
test_cmp_config -C client 0 core.repositoryformatversion &&
git -C client config extensions.nonsense true &&
test_must_fail git -C client fetch --unshallow --filter="blob:none"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/server/.git/
[master (root-commit) 6114aba] my_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 1
[master 743b332] my_commit2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Cloning into 'client'...
error: cannot upgrade repository format: unknown extension nonsense
fatal: unable to upgrade repository format to support partial clone
ok 4 - converting to partial clone fails with unrecognized extension
expecting success of 0410.5 'missing reflog object, but promised by a commit, passes fsck':
rm -rf repo &&
test_create_repo repo &&
test_commit -C repo my_commit &&
A=$(git -C repo commit-tree -m a HEAD^{tree}) &&
C=$(git -C repo commit-tree -m c -p $A HEAD^{tree}) &&
# Reference $A only from reflog, and delete it
git -C repo branch my_branch "$A" &&
git -C repo branch -f my_branch my_commit &&
delete_object repo "$A" &&
# State that we got $C, which refers to $A, from promisor
printf "$C\n" | pack_as_from_promisor &&
# Normally, it fails
test_must_fail git -C repo fsck &&
# But with the extension, it succeeds
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
git -C repo fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) 645f0a1] my_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 my_commit.t
b3b4322753142630efe6237cb5ef6cdc9d672d66
error: refs/heads/my_branch: invalid reflog entry 7fcb8777d818dca542e59d6eec4b069c2142b35e
error: refs/heads/my_branch: invalid reflog entry 7fcb8777d818dca542e59d6eec4b069c2142b35e
dangling commit fe174b3c23f972b6c7ba26ed4c372380fc6d8deb
dangling commit fe174b3c23f972b6c7ba26ed4c372380fc6d8deb
ok 5 - missing reflog object, but promised by a commit, passes fsck
expecting success of 0410.6 'missing reflog object, but promised by a tag, passes fsck':
rm -rf repo &&
test_create_repo repo &&
test_commit -C repo my_commit &&
A=$(git -C repo commit-tree -m a HEAD^{tree}) &&
git -C repo tag -a -m d my_tag_name $A &&
T=$(git -C repo rev-parse my_tag_name) &&
git -C repo tag -d my_tag_name &&
# Reference $A only from reflog, and delete it
git -C repo branch my_branch "$A" &&
git -C repo branch -f my_branch my_commit &&
delete_object repo "$A" &&
# State that we got $T, which refers to $A, from promisor
printf "$T\n" | pack_as_from_promisor &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
git -C repo fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) da2e7de] my_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 my_commit.t
Deleted tag 'my_tag_name' (was 34fac6a)
c5475378ca2e78834b400c9d937a6a162caee84e
dangling tag 34fac6a88cc545a8f8a17584908f0390550dbdb0
ok 6 - missing reflog object, but promised by a tag, passes fsck
expecting success of 0410.7 'missing reflog object alone fails fsck, even with extension set':
rm -rf repo &&
test_create_repo repo &&
test_commit -C repo my_commit &&
A=$(git -C repo commit-tree -m a HEAD^{tree}) &&
B=$(git -C repo commit-tree -m b HEAD^{tree}) &&
# Reference $A only from reflog, and delete it
git -C repo branch my_branch "$A" &&
git -C repo branch -f my_branch my_commit &&
delete_object repo "$A" &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
test_must_fail git -C repo fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) b45c342] my_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 my_commit.t
error: refs/heads/my_branch: invalid reflog entry f1a8c2dbb0668e21bdaf6b739b0910c11c02cd4e
error: refs/heads/my_branch: invalid reflog entry f1a8c2dbb0668e21bdaf6b739b0910c11c02cd4e
dangling commit 2a85d5935b4dc1c093280877f8358ac27008115b
ok 7 - missing reflog object alone fails fsck, even with extension set
expecting success of 0410.8 'missing ref object, but promised, passes fsck':
rm -rf repo &&
test_create_repo repo &&
test_commit -C repo my_commit &&
A=$(git -C repo commit-tree -m a HEAD^{tree}) &&
# Reference $A only from ref
git -C repo branch my_branch "$A" &&
promise_and_delete "$A" &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
git -C repo fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) 64a3647] my_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 my_commit.t
07990eb35a674c00ed95208ed2ad46a96b92b75e
dangling tag 549fe140e3a312e3c41eddbd806b0489252b5987
ok 8 - missing ref object, but promised, passes fsck
expecting success of 0410.9 'missing object, but promised, passes fsck':
rm -rf repo &&
test_create_repo repo &&
test_commit -C repo 1 &&
test_commit -C repo 2 &&
test_commit -C repo 3 &&
git -C repo tag -a annotated_tag -m "annotated tag" &&
C=$(git -C repo rev-parse 1) &&
T=$(git -C repo rev-parse 2^{tree}) &&
B=$(git hash-object repo/3.t) &&
AT=$(git -C repo rev-parse annotated_tag) &&
promise_and_delete "$C" &&
promise_and_delete "$T" &&
promise_and_delete "$B" &&
promise_and_delete "$AT" &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
git -C repo fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) 105d4e4] 1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 1.t
[master 6e1a67a] 2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 2.t
[master b8c6625] 3
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 3.t
2485aac98d1c3225c271e3af5e766f4367310b3a
777e8eb59ffb5b5722c8cd4f7d423cf3cd5ba1c8
31d0fc16a061bb21781c4c8359676a24cc34001e
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 my_annotated_tag f68fb4566316e272a308917d081de51a218993a2^{}
hint: Disable this message with "git config advice.nestedTag false"
4a50c8bde259d424ffcf127903fe9d554cac6b7d
dangling tag 2683b267061c97bcc34e7140acb2a6275e5b30d1
dangling tag 34bbb6f6e07e9726facfc8fa6af2c0b91c7d5958
dangling tag 5cbb9b35329a5b70b793ba9577acb379e91b1e55
dangling tree dcf3d5d7c6d10fb961287ca9bc59a5bf8a4b2afc
dangling tag 9fcc2c2e5cb1b8f6435735dde34bf7cb9effe69d
ok 9 - missing object, but promised, passes fsck
expecting success of 0410.10 'missing CLI object, but promised, passes fsck':
rm -rf repo &&
test_create_repo repo &&
test_commit -C repo my_commit &&
A=$(git -C repo commit-tree -m a HEAD^{tree}) &&
promise_and_delete "$A" &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
git -C repo fsck "$A"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) 1a8f860] my_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 my_commit.t
492fcaedcae5f38e5d43847baf9ad7f322583322
dangling tag 2b9e4c52199b033af01a67d4508ef14ad7cf61f0
dangling commit 1a8f8606ad20bf122ef5b7c5a44b64bc32833be8
ok 10 - missing CLI object, but promised, passes fsck
expecting success of 0410.11 'fetching of missing objects':
rm -rf repo err &&
test_create_repo server &&
test_commit -C server foo &&
git -C server repack -a -d --write-bitmap-index &&
git clone "file://$(pwd)/server" repo &&
HASH=$(git -C repo rev-parse foo) &&
rm -rf repo/.git/objects/* &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "origin" &&
git -C repo cat-file -p "$HASH" 2>err &&
# Ensure that no spurious FETCH_HEAD messages are written
! grep FETCH_HEAD err &&
# Ensure that the .promisor file is written, and check that its
# associated packfile contains the object
ls repo/.git/objects/pack/pack-*.promisor >promisorlist &&
test_line_count = 1 promisorlist &&
IDX=$(sed "s/promisor$/idx/" promisorlist) &&
git verify-pack --verbose "$IDX" >out &&
grep "$HASH" out
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/server/.git/
[master b704ccc] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
Cloning into 'repo'...
tree e36fba6ed8261dd9be2ee0232186fc8ed7b73cdf
parent 743b332bcde964fd77f8834b760ab10e4e6a878e
author A U Thor <author@example.com> 1112912833 -0700
committer C O Mitter <committer@example.com> 1112912833 -0700
foo
b704ccc22db3053176e94aafda84b62a9f092a25 commit 215 155 12
ok 11 - fetching of missing objects
expecting success of 0410.12 'fetching of a promised object that promisor remote no longer has':
rm -f err &&
test_create_repo unreliable-server &&
git -C unreliable-server config uploadpack.allowanysha1inwant 1 &&
git -C unreliable-server config uploadpack.allowfilter 1 &&
test_commit -C unreliable-server foo &&
git clone --filter=blob:none --no-checkout "file://$(pwd)/unreliable-server" unreliable-client &&
rm -rf unreliable-server/.git/objects/* &&
test_must_fail git -C unreliable-client checkout HEAD 2>err &&
grep "could not fetch.*from promisor remote" err
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/unreliable-server/.git/
[master (root-commit) 179b371] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
Cloning into 'unreliable-client'...
fatal: could not fetch 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 from promisor remote
ok 12 - fetching of a promised object that promisor remote no longer has
expecting success of 0410.13 'fetching of missing objects works with ref-in-want enabled':
# ref-in-want requires protocol version 2
git -C server config protocol.version 2 &&
git -C server config uploadpack.allowrefinwant 1 &&
git -C repo config protocol.version 2 &&
rm -rf repo/.git/objects/* &&
rm -f trace &&
GIT_TRACE_PACKET="$(pwd)/trace" git -C repo cat-file -p "$HASH" &&
grep "fetch< fetch=.*ref-in-want" trace
warning: filtering not recognized by server, ignoring
tree e36fba6ed8261dd9be2ee0232186fc8ed7b73cdf
parent 743b332bcde964fd77f8834b760ab10e4e6a878e
author A U Thor <author@example.com> 1112912833 -0700
committer C O Mitter <committer@example.com> 1112912833 -0700
foo
packet: fetch< fetch=shallow wait-for-done ref-in-want
ok 13 - fetching of missing objects works with ref-in-want enabled
expecting success of 0410.14 'fetching of missing objects from another promisor remote':
git clone "file://$(pwd)/server" server2 &&
test_commit -C server2 bar &&
git -C server2 repack -a -d --write-bitmap-index &&
HASH2=$(git -C server2 rev-parse bar) &&
git -C repo remote add server2 "file://$(pwd)/server2" &&
git -C repo config remote.server2.promisor true &&
git -C repo cat-file -p "$HASH2" &&
git -C repo fetch server2 &&
rm -rf repo/.git/objects/* &&
git -C repo cat-file -p "$HASH2" &&
# Ensure that the .promisor file is written, and check that its
# associated packfile contains the object
ls repo/.git/objects/pack/pack-*.promisor >promisorlist &&
test_line_count = 1 promisorlist &&
IDX=$(sed "s/promisor$/idx/" promisorlist) &&
git verify-pack --verbose "$IDX" >out &&
grep "$HASH2" out
Cloning into 'server2'...
[master e31237c] bar
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 bar.t
warning: filtering not recognized by server, ignoring
tree 71baac54afb804ff6a25aae0730b2466d066a704
parent b704ccc22db3053176e94aafda84b62a9f092a25
author A U Thor <author@example.com> 1112912953 -0700
committer C O Mitter <committer@example.com> 1112912953 -0700
bar
From file:///<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/server2
* [new branch] master -> server2/master
* [new tag] bar -> bar
warning: filtering not recognized by server, ignoring
tree 71baac54afb804ff6a25aae0730b2466d066a704
parent b704ccc22db3053176e94aafda84b62a9f092a25
author A U Thor <author@example.com> 1112912953 -0700
committer C O Mitter <committer@example.com> 1112912953 -0700
bar
e31237c4c7797ac5ccee8f6eca69c5a52b78be41 commit 215 154 12
ok 14 - fetching of missing objects from another promisor remote
expecting success of 0410.15 'fetching of missing objects configures a promisor remote':
git clone "file://$(pwd)/server" server3 &&
test_commit -C server3 baz &&
git -C server3 repack -a -d --write-bitmap-index &&
HASH3=$(git -C server3 rev-parse baz) &&
git -C server3 config uploadpack.allowfilter 1 &&
rm repo/.git/objects/pack/pack-*.promisor &&
git -C repo remote add server3 "file://$(pwd)/server3" &&
git -C repo fetch --filter="blob:none" server3 $HASH3 &&
test_cmp_config -C repo true remote.server3.promisor &&
# Ensure that the .promisor file is written, and check that its
# associated packfile contains the object
ls repo/.git/objects/pack/pack-*.promisor >promisorlist &&
test_line_count = 1 promisorlist &&
IDX=$(sed "s/promisor$/idx/" promisorlist) &&
git verify-pack --verbose "$IDX" >out &&
grep "$HASH3" out
Cloning into 'server3'...
[master 564c63c] baz
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 baz.t
From file:///<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/server3
* branch 564c63c3fd2eb60f09ddde009d238b8ea1732504 -> FETCH_HEAD
564c63c3fd2eb60f09ddde009d238b8ea1732504 commit 215 156 12
ok 15 - fetching of missing objects configures a promisor remote
expecting success of 0410.16 'fetching of missing blobs works':
rm -rf server server2 repo &&
rm -rf server server3 repo &&
test_create_repo server &&
test_commit -C server foo &&
git -C server repack -a -d --write-bitmap-index &&
git clone "file://$(pwd)/server" repo &&
git hash-object repo/foo.t >blobhash &&
rm -rf repo/.git/objects/* &&
git -C server config uploadpack.allowanysha1inwant 1 &&
git -C server config uploadpack.allowfilter 1 &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "origin" &&
git -C repo cat-file -p $(cat blobhash)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/server/.git/
[master (root-commit) bbef54c] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
Cloning into 'repo'...
foo
ok 16 - fetching of missing blobs works
expecting success of 0410.17 'fetching of missing trees does not fetch blobs':
rm -rf server repo &&
test_create_repo server &&
test_commit -C server foo &&
git -C server repack -a -d --write-bitmap-index &&
git clone "file://$(pwd)/server" repo &&
git -C repo rev-parse foo^{tree} >treehash &&
git hash-object repo/foo.t >blobhash &&
rm -rf repo/.git/objects/* &&
git -C server config uploadpack.allowanysha1inwant 1 &&
git -C server config uploadpack.allowfilter 1 &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "origin" &&
git -C repo cat-file -p $(cat treehash) &&
# Ensure that the tree, but not the blob, is fetched
git -C repo rev-list --objects --missing=print $(cat treehash) >objects &&
grep "^$(cat treehash)" objects &&
grep "^[?]$(cat blobhash)" objects
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/server/.git/
[master (root-commit) 6aab15f] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
Cloning into 'repo'...
100644 blob 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 foo.t
64fd3796c57084e7b8cbae358ce37970b8e954f6
?257cc5642cb1a054f08cc83f2d943e56fd3ebe99
ok 17 - fetching of missing trees does not fetch blobs
expecting success of 0410.18 'rev-list stops traversal at missing and promised commit':
rm -rf repo &&
test_create_repo repo &&
test_commit -C repo foo &&
test_commit -C repo bar &&
FOO=$(git -C repo rev-parse foo) &&
promise_and_delete "$FOO" &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
git -C repo rev-list --exclude-promisor-objects --objects bar >out &&
grep $(git -C repo rev-parse bar) out &&
! grep $FOO out
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) 9221471] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
[master ff8c8be] bar
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 bar.t
b811da665b3347533d28e754783c731dd3be8fc0
ff8c8bee78de1035f43b9046635cf3173c80847d
ok 18 - rev-list stops traversal at missing and promised commit
expecting success of 0410.19 'missing tree objects with --missing=allow-promisor and --exclude-promisor-objects':
rm -rf repo &&
test_create_repo repo &&
test_commit -C repo foo &&
test_commit -C repo bar &&
test_commit -C repo baz &&
promise_and_delete $(git -C repo rev-parse bar^{tree}) &&
promise_and_delete $(git -C repo rev-parse foo^{tree}) &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
git -C repo rev-list --missing=allow-promisor --objects HEAD >objs 2>rev_list_err &&
test_must_be_empty rev_list_err &&
# 3 commits, 3 blobs, and 1 tree
test_line_count = 7 objs &&
# Do the same for --exclude-promisor-objects, but with all trees gone.
promise_and_delete $(git -C repo rev-parse baz^{tree}) &&
git -C repo rev-list --exclude-promisor-objects --objects HEAD >objs 2>rev_list_err &&
test_must_be_empty rev_list_err &&
# 3 commits, no blobs or trees
test_line_count = 3 objs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) da360a9] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
[master 8e63723] bar
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 bar.t
[master 9f4b2de] baz
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 baz.t
6550f6c14e11be8aa8fd4775f1cbac8a86d3c020
21f60db37d541c539ce18abed9c34cca08275e75
a0897ff0dc3d6258c3e2e9b672280c8c67afe5a6
ok 19 - missing tree objects with --missing=allow-promisor and --exclude-promisor-objects
expecting success of 0410.20 'missing non-root tree object and rev-list':
rm -rf repo &&
test_create_repo repo &&
mkdir repo/dir &&
echo foo >repo/dir/foo &&
git -C repo add dir/foo &&
git -C repo commit -m "commit dir/foo" &&
promise_and_delete $(git -C repo rev-parse HEAD:dir) &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
git -C repo rev-list --missing=allow-any --objects HEAD >objs 2>rev_list_err &&
test_must_be_empty rev_list_err &&
# 1 commit and 1 tree
test_line_count = 2 objs
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) 19805d4] commit dir/foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 dir/foo
83b1345e23463e491d63e0b738b32737ae12b14e
ok 20 - missing non-root tree object and rev-list
expecting success of 0410.21 'rev-list stops traversal at missing and promised tree':
rm -rf repo &&
test_create_repo repo &&
test_commit -C repo foo &&
mkdir repo/a_dir &&
echo something >repo/a_dir/something &&
git -C repo add a_dir/something &&
git -C repo commit -m bar &&
# foo^{tree} (tree referenced from commit)
TREE=$(git -C repo rev-parse foo^{tree}) &&
# a tree referenced by HEAD^{tree} (tree referenced from tree)
TREE2=$(git -C repo ls-tree HEAD^{tree} | grep " tree " | head -1 | cut -b13-52) &&
promise_and_delete "$TREE" &&
promise_and_delete "$TREE2" &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
git -C repo rev-list --exclude-promisor-objects --objects HEAD >out &&
grep $(git -C repo rev-parse foo) out &&
! grep $TREE out &&
grep $(git -C repo rev-parse HEAD) out &&
! grep $TREE2 out
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) 17fbdf8] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
[master ad093f3] bar
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a_dir/something
5ef11270e2d2fd2bc3855f6dd86c6c55e98b89e4
979cf6fb4e13711d7be586e5be27a045f17cf7ab
17fbdf8e8f2cd984906bc16944e7b642a041bd09
ad093f3bd66a91b34d8a8c0ad31fb2b14216feee
ok 21 - rev-list stops traversal at missing and promised tree
expecting success of 0410.22 'rev-list stops traversal at missing and promised blob':
rm -rf repo &&
test_create_repo repo &&
echo something >repo/something &&
git -C repo add something &&
git -C repo commit -m foo &&
BLOB=$(git -C repo hash-object -w something) &&
promise_and_delete "$BLOB" &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
git -C repo rev-list --exclude-promisor-objects --objects HEAD >out &&
grep $(git -C repo rev-parse HEAD) out &&
! grep $BLOB out
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) 53e2498] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 something
1bd387dfff2cd70c81fc24a57da1423e7646d0ac
53e249869c30b2797cba2e4262d1403822bd6f27
ok 22 - rev-list stops traversal at missing and promised blob
expecting success of 0410.23 'rev-list stops traversal at promisor commit, tree, and blob':
rm -rf repo &&
test_create_repo repo &&
test_commit -C repo foo &&
test_commit -C repo bar &&
test_commit -C repo baz &&
COMMIT=$(git -C repo rev-parse foo) &&
TREE=$(git -C repo rev-parse bar^{tree}) &&
BLOB=$(git hash-object repo/baz.t) &&
printf "%s\n%s\n%s\n" $COMMIT $TREE $BLOB | pack_as_from_promisor &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
git -C repo rev-list --exclude-promisor-objects --objects HEAD >out &&
! grep $COMMIT out &&
! grep $TREE out &&
! grep $BLOB out &&
grep $(git -C repo rev-parse bar) out # sanity check that some walking was done
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) 551a204] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
[master 3c09622] bar
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 bar.t
[master 114e46f] baz
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 baz.t
6ccf2e85bb4fbea4379d5abce112fd85bb65c461
3c09622014b3efcccde9c022644ac33a55ecd125
ok 23 - rev-list stops traversal at promisor commit, tree, and blob
expecting success of 0410.24 'rev-list dies for missing objects on cmd line':
rm -rf repo &&
test_create_repo repo &&
test_commit -C repo foo &&
test_commit -C repo bar &&
test_commit -C repo baz &&
COMMIT=$(git -C repo rev-parse foo) &&
TREE=$(git -C repo rev-parse bar^{tree}) &&
BLOB=$(git hash-object repo/baz.t) &&
promise_and_delete $COMMIT &&
promise_and_delete $TREE &&
promise_and_delete $BLOB &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
for OBJ in "$COMMIT" "$TREE" "$BLOB"; do
test_must_fail git -C repo rev-list --objects \
--exclude-promisor-objects "$OBJ" &&
test_must_fail git -C repo rev-list --objects-edge-aggressive \
--exclude-promisor-objects "$OBJ" &&
# Do not die or crash when --ignore-missing is passed.
git -C repo rev-list --ignore-missing --objects \
--exclude-promisor-objects "$OBJ" &&
git -C repo rev-list --ignore-missing --objects-edge-aggressive \
--exclude-promisor-objects "$OBJ" || return 1
done
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) bf98c57] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
[master 9768ca4] bar
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 bar.t
[master 1980c58] baz
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 baz.t
cc034486f116f4a2da237cfb31d7f52d7493d39a
ec1dec6a75446df8471b40065154383df5d8be54
911d478da9923de08ad2da390153ab87072d89b5
fatal: ambiguous argument 'bf98c5722fd23396766e1a68ef49284bac9f34d3': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
fatal: ambiguous argument 'bf98c5722fd23396766e1a68ef49284bac9f34d3': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
fatal: ambiguous argument '12e519f9839344d0202cbb4a0286099ef31e2196': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
fatal: ambiguous argument '12e519f9839344d0202cbb4a0286099ef31e2196': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
fatal: ambiguous argument '76018072e09c5d31c8c6e3113b8aa0fe625195ca': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
fatal: ambiguous argument '76018072e09c5d31c8c6e3113b8aa0fe625195ca': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
ok 24 - rev-list dies for missing objects on cmd line
expecting success of 0410.25 'single promisor remote can be re-initialized gracefully':
# ensure one promisor is in the promisors list
rm -rf repo &&
test_create_repo repo &&
test_create_repo other &&
git -C repo remote add foo "file://$(pwd)/other" &&
git -C repo config remote.foo.promisor true &&
git -C repo config extensions.partialclone foo &&
# reinitialize the promisors list
git -C repo fetch --filter=blob:none foo
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/other/.git/
ok 25 - single promisor remote can be re-initialized gracefully
expecting success of 0410.26 'gc repacks promisor objects separately from non-promisor objects':
rm -rf repo &&
test_create_repo repo &&
test_commit -C repo one &&
test_commit -C repo two &&
TREE_ONE=$(git -C repo rev-parse one^{tree}) &&
printf "$TREE_ONE\n" | pack_as_from_promisor &&
TREE_TWO=$(git -C repo rev-parse two^{tree}) &&
printf "$TREE_TWO\n" | pack_as_from_promisor &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
git -C repo gc &&
# Ensure that exactly one promisor packfile exists, and that it
# contains the trees but not the commits
ls repo/.git/objects/pack/pack-*.promisor >promisorlist &&
test_line_count = 1 promisorlist &&
PROMISOR_PACKFILE=$(sed "s/.promisor/.pack/" <promisorlist) &&
git verify-pack $PROMISOR_PACKFILE -v >out &&
grep "$TREE_ONE" out &&
grep "$TREE_TWO" out &&
! grep "$(git -C repo rev-parse one)" out &&
! grep "$(git -C repo rev-parse two)" out &&
# Remove the promisor packfile and associated files
rm $(sed "s/.promisor//" <promisorlist).* &&
# Ensure that the single other pack contains the commits, but not the
# trees
ls repo/.git/objects/pack/pack-*.pack >packlist &&
test_line_count = 1 packlist &&
git verify-pack repo/.git/objects/pack/pack-*.pack -v >out &&
grep "$(git -C repo rev-parse one)" out &&
grep "$(git -C repo rev-parse two)" out &&
! grep "$TREE_ONE" out &&
! grep "$TREE_TWO" out
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) ef23b68] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
[master b399ab2] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 two.t
80b0d61182f42d417d3f1080999c86acd16276f7
4f4b1c441e35611dff006a309fbda4370b40fc90
a7cddf35737959e1438bc929b665619e9e79bfee tree 33 44 85
2f00a404aed7e63d867313d504bd0fccea53fd25 tree 66 73 12
ef23b68d4e6487c3b82203365a1ad71966a7c795 commit 167 127 168
b399ab2167d8b39d1885d639c028321b5d84b0da commit 215 156 12
ok 26 - gc repacks promisor objects separately from non-promisor objects
expecting success of 0410.27 'gc does not repack promisor objects if there are none':
rm -rf repo &&
test_create_repo repo &&
test_commit -C repo one &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
git -C repo gc &&
# Ensure that only one pack exists
ls repo/.git/objects/pack/pack-*.pack >packlist &&
test_line_count = 1 packlist
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) 772c775] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
ok 27 - gc does not repack promisor objects if there are none
expecting success of 0410.28 'repack -d does not irreversibly delete promisor objects':
rm -rf repo &&
test_create_repo repo &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
git -C repo commit --allow-empty -m one &&
git -C repo commit --allow-empty -m two &&
git -C repo commit --allow-empty -m three &&
git -C repo commit --allow-empty -m four &&
ONE=$(git -C repo rev-parse HEAD^^^) &&
TWO=$(git -C repo rev-parse HEAD^^) &&
THREE=$(git -C repo rev-parse HEAD^) &&
printf "$TWO\n" | pack_as_from_promisor &&
printf "$THREE\n" | pack_as_from_promisor &&
delete_object repo "$ONE" &&
repack_and_check --must-fail -ab "$TWO" "$THREE" &&
repack_and_check -a "$TWO" "$THREE" &&
repack_and_check -A "$TWO" "$THREE" &&
repack_and_check -l "$TWO" "$THREE"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) 855c7a9] one
Author: A U Thor <author@example.com>
[master 2a4d010] two
Author: A U Thor <author@example.com>
[master 35fd646] three
Author: A U Thor <author@example.com>
[master 6be7a1a] four
Author: A U Thor <author@example.com>
2a4f85dde21d39cdf91c12b1cabc70b22e331e87
daf9f3011efc4e7873d073475188dc321f1033f9
warning: reflog of 'HEAD' references pruned commits
warning: reflog of 'refs/heads/master' references pruned commits
warning: Failed to write bitmap index. Packfile doesn't have full closure (object 35fd6460acd56684efbfd2c8e3afd7ee8f3b80f1 is missing)
fatal: failed to write bitmap index
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
ok 28 - repack -d does not irreversibly delete promisor objects
expecting success of 0410.29 'gc stops traversal when a missing but promised object is reached':
rm -rf repo &&
test_create_repo repo &&
test_commit -C repo my_commit &&
TREE_HASH=$(git -C repo rev-parse HEAD^{tree}) &&
HASH=$(promise_and_delete $TREE_HASH) &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
git -C repo gc &&
# Ensure that the promisor packfile still exists, and remove it
test -e repo/.git/objects/pack/pack-$HASH.pack &&
rm repo/.git/objects/pack/pack-$HASH.* &&
# Ensure that the single other pack contains the commit, but not the tree
ls repo/.git/objects/pack/pack-*.pack >packlist &&
test_line_count = 1 packlist &&
git verify-pack repo/.git/objects/pack/pack-*.pack -v >out &&
grep "$(git -C repo rev-parse HEAD)" out &&
! grep "$TREE_HASH" out
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) 52a9f42] my_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 my_commit.t
52a9f4290c16cfcf35d767283a0965b6a04864e8 commit 173 128 12
ok 29 - gc stops traversal when a missing but promised object is reached
expecting success of 0410.30 'do not fetch when checking existence of tree we construct ourselves':
rm -rf repo &&
test_create_repo repo &&
test_commit -C repo base &&
test_commit -C repo side1 &&
git -C repo checkout base &&
test_commit -C repo side2 &&
git -C repo config core.repositoryformatversion 1 &&
git -C repo config extensions.partialclone "arbitrary string" &&
git -C repo cherry-pick side1
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) 5d33c08] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 base.t
[master d575dc7] side1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 side1.t
Note: switching to 'base'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 5d33c08 base
[detached HEAD 5ac9e13] side2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 side2.t
[detached HEAD fa37d98] side1
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:50:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 side1.t
ok 30 - do not fetch when checking existence of tree we construct ourselves
expecting success of 0410.31 'exact rename does not need to fetch the blob lazily':
rm -rf repo partial.git &&
test_create_repo repo &&
content="some dummy content" &&
test_commit -C repo create-a-file file.txt "$content" &&
git -C repo mv file.txt new-file.txt &&
git -C repo commit -m rename-the-file &&
FILE_HASH=$(git -C repo rev-parse HEAD:new-file.txt) &&
test_config -C repo uploadpack.allowfilter 1 &&
test_config -C repo uploadpack.allowanysha1inwant 1 &&
git clone --filter=blob:none --bare "file://$(pwd)/repo" partial.git &&
git -C partial.git rev-list --objects --missing=print HEAD >out &&
grep "[?]$FILE_HASH" out &&
git -C partial.git log --follow -- new-file.txt &&
git -C partial.git rev-list --objects --missing=print HEAD >out &&
grep "[?]$FILE_HASH" out
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/repo/.git/
[master (root-commit) 7ac4eca] create-a-file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file.txt
[master b8362fb] rename-the-file
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
rename file.txt => new-file.txt (100%)
Cloning into bare repository 'partial.git'...
?62d06a966bf6dc792f2877492ae19ad68622d978
commit b8362fbe7536ff7fea31c5374c3cda4baf9b3ee0
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:52:13 2005 -0700
rename-the-file
commit 7ac4ecae96a92bab0cc7f88a2d2d88598ddca71b
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:52:13 2005 -0700
create-a-file
?62d06a966bf6dc792f2877492ae19ad68622d978
ok 31 - exact rename does not need to fetch the blob lazily
expecting success of 0410.32 'lazy-fetch when accessing object not in the_repository':
rm -rf full partial.git &&
test_create_repo full &&
test_commit -C full create-a-file file.txt &&
test_config -C full uploadpack.allowfilter 1 &&
test_config -C full uploadpack.allowanysha1inwant 1 &&
git clone --filter=blob:none --bare "file://$(pwd)/full" partial.git &&
FILE_HASH=$(git -C full rev-parse HEAD:file.txt) &&
# Sanity check that the file is missing
git -C partial.git rev-list --objects --missing=print HEAD >out &&
grep "[?]$FILE_HASH" out &&
git -C full cat-file -s "$FILE_HASH" >expect &&
test-tool partial-clone object-info partial.git "$FILE_HASH" >actual &&
test_cmp expect actual &&
# Sanity check that the file is now present
git -C partial.git rev-list --objects --missing=print HEAD >out &&
! grep "[?]$FILE_HASH" out
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0410-partial-clone/full/.git/
[master (root-commit) fc5fa02] create-a-file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file.txt
Cloning into bare repository 'partial.git'...
?aa94997042a27f4d6c4b4556031df55155e02559
ok 32 - lazy-fetch when accessing object not in the_repository
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
# passed all 32 test(s)
# SKIP no web server found at '/usr/sbin/apache2'
1..32
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1001-read-tree-m-2way.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 read-tree --super-prefix fictional/ -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 <author@example.com>
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 <author@example.com>
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1003-read-tree-prefix.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
expecting success of 1003.3 'read-tree --prefix with leading slash exits with error':
git rm -rf . &&
test_must_fail git read-tree --prefix=/two/ $tree &&
git read-tree --prefix=two/ $tree &&
git rm -rf . &&
test_must_fail git read-tree --prefix=/ $tree &&
git read-tree --prefix= $tree
rm 'one'
rm 'two/one'
fatal: Invalid prefix, prefix cannot start with '/'
rm 'two/one'
fatal: Invalid prefix, prefix cannot start with '/'
ok 3 - read-tree --prefix with leading slash exits with error
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1002-read-tree-m-u-2way.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1002-read-tree-m-u-2way/.git/
expecting success of 1002.1 'setup': echo frotz >frotz &&
echo nitfol >nitfol &&
echo bozbar >bozbar &&
echo rezrov >rezrov &&
git update-index --add nitfol bozbar rezrov &&
treeH=$(git write-tree) &&
echo treeH $treeH &&
git ls-tree $treeH &&
echo gnusto >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 &&
cp bozbar bozbar.M &&
cp frotz frotz.M &&
cp nitfol nitfol.M &&
git diff-tree $treeH $treeM
treeH 661afa9096b7e2d4b9a28a6e43736cd0b06d1308
100644 blob 78d812a2124ff980a1a70f8cca493698d643d242 bozbar
100644 blob dca6b92303befc93086aa025d90a5facd7eb2812 nitfol
100644 blob 766498d93a4b06057a8e49d23f4068f1170ff38f rezrov
treeM 05bf9652e9b06473d6ca2f32ff60e2401e59bfa6
100644 blob bb3b2cd2e136e1e4e7ecdf10068e246196dd8294 bozbar
100644 blob 8e4020bb5a8d8c873b25de15933e75cc0fc275df frotz
100644 blob dca6b92303befc93086aa025d90a5facd7eb2812 nitfol
:100644 100644 78d812a2124ff980a1a70f8cca493698d643d242 bb3b2cd2e136e1e4e7ecdf10068e246196dd8294 M bozbar
:000000 100644 0000000000000000000000000000000000000000 8e4020bb5a8d8c873b25de15933e75cc0fc275df A frotz
:100644 000000 766498d93a4b06057a8e49d23f4068f1170ff38f 0000000000000000000000000000000000000000 D rezrov
ok 1 - setup
expecting success of 1002.2 '1, 2, 3 - no carry forward': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
read_tree_u_must_succeed -m -u $treeH $treeM &&
git ls-files --stage >1-3.out &&
cmp M.out 1-3.out &&
test_cmp bozbar.M bozbar &&
test_cmp frotz.M frotz &&
test_cmp nitfol.M nitfol &&
check_cache_at bozbar clean &&
check_cache_at frotz clean &&
check_cache_at nitfol clean
bozbar: clean
frotz: clean
nitfol: clean
ok 2 - 1, 2, 3 - no carry forward
expecting success of 1002.3 '4 - carry forward local addition.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
echo "+100644 X 0 yomin" >expected &&
echo yomin >yomin &&
git update-index --add yomin &&
read_tree_u_must_succeed -m -u $treeH $treeM &&
git ls-files --stage >4.out &&
test_might_fail git diff -U0 --no-index M.out 4.out >4diff.out &&
compare_change 4diff.out expected &&
check_cache_at yomin clean &&
test_cmp bozbar.M bozbar &&
test_cmp frotz.M frotz &&
test_cmp nitfol.M nitfol &&
echo yomin >yomin1 &&
diff yomin yomin1 &&
rm -f yomin1
yomin: clean
ok 3 - 4 - carry forward local addition.
expecting success of 1002.4 '5 - carry forward local addition.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
read_tree_u_must_succeed -m -u $treeH &&
echo yomin >yomin &&
git update-index --add yomin &&
echo yomin yomin >yomin &&
read_tree_u_must_succeed -m -u $treeH $treeM &&
git ls-files --stage >5.out &&
test_might_fail git diff -U0 --no-index M.out 5.out >5diff.out &&
compare_change 5diff.out expected &&
check_cache_at yomin dirty &&
test_cmp bozbar.M bozbar &&
test_cmp frotz.M frotz &&
test_cmp nitfol.M nitfol &&
: dirty index should have prevented -u from checking it out. &&
echo yomin yomin >yomin1 &&
diff yomin yomin1 &&
rm -f yomin1
yomin: dirty
ok 4 - 5 - carry forward local addition.
expecting success of 1002.5 '6 - local addition already has the same.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
echo frotz >frotz &&
git update-index --add frotz &&
read_tree_u_must_succeed -m -u $treeH $treeM &&
git ls-files --stage >6.out &&
test_cmp M.out 6.out &&
check_cache_at frotz clean &&
test_cmp bozbar.M bozbar &&
test_cmp frotz.M frotz &&
test_cmp nitfol.M nitfol &&
echo frotz >frotz1 &&
diff frotz frotz1 &&
rm -f frotz1
frotz: clean
ok 5 - 6 - local addition already has the same.
expecting success of 1002.6 '7 - local addition already has the same.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
echo frotz >frotz &&
git update-index --add frotz &&
echo frotz frotz >frotz &&
read_tree_u_must_succeed -m -u $treeH $treeM &&
git ls-files --stage >7.out &&
test_cmp M.out 7.out &&
check_cache_at frotz dirty &&
test_cmp bozbar.M bozbar &&
test_cmp nitfol.M nitfol &&
: dirty index should have prevented -u from checking it out. &&
echo frotz frotz >frotz1 &&
diff frotz frotz1 &&
rm -f frotz1
frotz: dirty
ok 6 - 7 - local addition already has the same.
expecting success of 1002.7 '8 - conflicting addition.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
echo frotz frotz >frotz &&
git update-index --add frotz &&
! read_tree_u_must_succeed -m -u $treeH $treeM
error: Entry 'frotz' would be overwritten by merge. Cannot merge.
ok 7 - 8 - conflicting addition.
expecting success of 1002.8 '9 - conflicting addition.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
echo frotz frotz >frotz &&
git update-index --add frotz &&
echo frotz >frotz &&
! read_tree_u_must_succeed -m -u $treeH $treeM
error: Entry 'frotz' would be overwritten by merge. Cannot merge.
ok 8 - 9 - conflicting addition.
expecting success of 1002.9 '10 - path removed.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
echo rezrov >rezrov &&
git update-index --add rezrov &&
read_tree_u_must_succeed -m -u $treeH $treeM &&
git ls-files --stage >10.out &&
cmp M.out 10.out &&
test_cmp bozbar.M bozbar &&
test_cmp frotz.M frotz &&
test_cmp nitfol.M nitfol
ok 9 - 10 - path removed.
expecting success of 1002.10 '11 - dirty path removed.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
echo rezrov >rezrov &&
git update-index --add rezrov &&
echo rezrov rezrov >rezrov &&
! read_tree_u_must_succeed -m -u $treeH $treeM
error: Entry 'rezrov' not uptodate. Cannot merge.
ok 10 - 11 - dirty path removed.
expecting success of 1002.11 '12 - unmatching local changes being removed.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
echo rezrov rezrov >rezrov &&
git update-index --add rezrov &&
! read_tree_u_must_succeed -m -u $treeH $treeM
error: Entry 'rezrov' would be overwritten by merge. Cannot merge.
ok 11 - 12 - unmatching local changes being removed.
expecting success of 1002.12 '13 - unmatching local changes being removed.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
echo rezrov rezrov >rezrov &&
git update-index --add rezrov &&
echo rezrov >rezrov &&
! read_tree_u_must_succeed -m -u $treeH $treeM
error: Entry 'rezrov' would be overwritten by merge. Cannot merge.
ok 12 - 13 - unmatching local changes being removed.
expecting success of 1002.13 '14 - unchanged in two heads.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
echo nitfol nitfol >nitfol &&
git update-index --add nitfol &&
read_tree_u_must_succeed -m -u $treeH $treeM &&
git ls-files --stage >14.out &&
test_must_fail git diff -U0 --no-index M.out 14.out >14diff.out &&
compare_change 14diff.out expected &&
test_cmp bozbar.M bozbar &&
test_cmp frotz.M frotz &&
check_cache_at nitfol clean &&
echo nitfol nitfol >nitfol1 &&
diff nitfol nitfol1 &&
rm -f nitfol1
nitfol: clean
ok 13 - 14 - unchanged in two heads.
expecting success of 1002.14 '15 - unchanged in two heads.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
echo nitfol nitfol >nitfol &&
git update-index --add nitfol &&
echo nitfol nitfol nitfol >nitfol &&
read_tree_u_must_succeed -m -u $treeH $treeM &&
git ls-files --stage >15.out &&
test_must_fail git diff -U0 --no-index M.out 15.out >15diff.out &&
compare_change 15diff.out expected &&
check_cache_at nitfol dirty &&
test_cmp bozbar.M bozbar &&
test_cmp frotz.M frotz &&
echo nitfol nitfol nitfol >nitfol1 &&
diff nitfol nitfol1 &&
rm -f nitfol1
nitfol: dirty
ok 14 - 15 - unchanged in two heads.
expecting success of 1002.15 '16 - conflicting local change.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
echo bozbar bozbar >bozbar &&
git update-index --add bozbar &&
! read_tree_u_must_succeed -m -u $treeH $treeM
error: Entry 'bozbar' would be overwritten by merge. Cannot merge.
ok 15 - 16 - conflicting local change.
expecting success of 1002.16 '17 - conflicting local change.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
echo bozbar bozbar >bozbar &&
git update-index --add bozbar &&
echo bozbar bozbar bozbar >bozbar &&
! read_tree_u_must_succeed -m -u $treeH $treeM
error: Entry 'bozbar' would be overwritten by merge. Cannot merge.
ok 16 - 17 - conflicting local change.
expecting success of 1002.17 '18 - local change already having a good result.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
echo gnusto >bozbar &&
git update-index --add bozbar &&
read_tree_u_must_succeed -m -u $treeH $treeM &&
git ls-files --stage >18.out &&
test_cmp M.out 18.out &&
check_cache_at bozbar clean &&
test_cmp bozbar.M bozbar &&
test_cmp frotz.M frotz &&
test_cmp nitfol.M nitfol
bozbar: clean
ok 17 - 18 - local change already having a good result.
expecting success of 1002.18 '19 - local change already having a good result, further modified.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
echo gnusto >bozbar &&
git update-index --add bozbar &&
echo gnusto gnusto >bozbar &&
read_tree_u_must_succeed -m -u $treeH $treeM &&
git ls-files --stage >19.out &&
test_cmp M.out 19.out &&
check_cache_at bozbar dirty &&
test_cmp frotz.M frotz &&
test_cmp nitfol.M nitfol &&
echo gnusto gnusto >bozbar1 &&
diff bozbar bozbar1 &&
rm -f bozbar1
bozbar: dirty
ok 18 - 19 - local change already having a good result, further modified.
expecting success of 1002.19 '20 - no local change, use new tree.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
echo bozbar >bozbar &&
git update-index --add bozbar &&
read_tree_u_must_succeed -m -u $treeH $treeM &&
git ls-files --stage >20.out &&
test_cmp M.out 20.out &&
check_cache_at bozbar clean &&
test_cmp bozbar.M bozbar &&
test_cmp frotz.M frotz &&
test_cmp nitfol.M nitfol
bozbar: clean
ok 19 - 20 - no local change, use new tree.
expecting success of 1002.20 '21 - no local change, dirty cache.': rm -f .git/index nitfol bozbar rezrov frotz &&
read_tree_u_must_succeed --reset -u $treeH &&
echo bozbar >bozbar &&
git update-index --add bozbar &&
echo gnusto gnusto >bozbar &&
! read_tree_u_must_succeed -m -u $treeH $treeM
error: Entry 'bozbar' not uptodate. Cannot merge.
ok 20 - 21 - no local change, dirty cache.
expecting success of 1002.21 '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 21 - DF vs DF/DF case setup.
expecting success of 1002.22 'DF vs DF/DF case test.': rm -f .git/index &&
rm -fr DF &&
echo DF >DF &&
git update-index --add DF &&
read_tree_u_must_succeed -m -u $treeDF $treeDFDF &&
git ls-files --stage >DFDFcheck.out &&
test_cmp DFDF.out DFDFcheck.out &&
check_cache_at DF/DF clean
DF/DF: clean
ok 22 - DF vs DF/DF case test.
# passed all 22 test(s)
1..22
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1004-read-tree-m-u-wf.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1004-read-tree-m-u-wf/.git/
expecting success of 1004.1 'two-way setup':
mkdir subdir &&
echo >file1 file one &&
echo >file2 file two &&
echo >subdir/file1 file one in subdirectory &&
echo >subdir/file2 file two in subdirectory &&
git update-index --add file1 file2 subdir/file1 subdir/file2 &&
git commit -m initial &&
git branch side &&
git tag -f branch-point &&
echo file2 is not tracked on the main branch anymore &&
rm -f file2 subdir/file2 &&
git update-index --remove file2 subdir/file2 &&
git commit -a -m "main removes file2 and subdir/file2"
[main (root-commit) eb5336a] initial
Author: A U Thor <author@example.com>
4 files changed, 4 insertions(+)
create mode 100644 file1
create mode 100644 file2
create mode 100644 subdir/file1
create mode 100644 subdir/file2
file2 is not tracked on the main branch anymore
[main dbb6421] main removes file2 and subdir/file2
Author: A U Thor <author@example.com>
2 files changed, 2 deletions(-)
delete mode 100644 file2
delete mode 100644 subdir/file2
ok 1 - two-way setup
expecting success of 1004.2 'two-way not clobbering':
echo >file2 main creates untracked file2 &&
echo >subdir/file2 main creates untracked subdir/file2 &&
if err=$(read_tree_u_must_succeed -m -u main side 2>&1)
then
echo should have complained
false
else
echo "happy to see $err"
fi
happy to see error: Untracked working tree file 'file2' would be overwritten by merge.
ok 2 - two-way not clobbering
expecting success of 1004.3 'two-way with incorrect --exclude-per-directory (1)':
if err=$(read_tree_u_must_succeed -m --exclude-per-directory=.gitignore main side 2>&1)
then
echo should have complained
false
else
echo "happy to see $err"
fi
happy to see fatal: --exclude-per-directory is meaningless unless -u
ok 3 - two-way with incorrect --exclude-per-directory (1)
expecting success of 1004.4 'two-way with incorrect --exclude-per-directory (2)':
if err=$(read_tree_u_must_succeed -m -u --exclude-per-directory=foo --exclude-per-directory=.gitignore main side 2>&1)
then
echo should have complained
false
else
echo "happy to see $err"
fi
happy to see fatal: --exclude-per-directory argument must be .gitignore
ok 4 - two-way with incorrect --exclude-per-directory (2)
expecting success of 1004.5 'two-way clobbering a ignored file':
read_tree_u_must_succeed -m -u --exclude-per-directory=.gitignore main side
ok 5 - two-way clobbering a ignored file
expecting success of 1004.6 'three-way not complaining on an untracked path in both':
rm -f file2 subdir/file2 &&
git checkout side &&
echo >file3 file three &&
echo >subdir/file3 file three &&
git update-index --add file3 subdir/file3 &&
git commit -a -m "side adds file3 and removes file2" &&
git checkout main &&
echo >file2 file two is untracked on the main side &&
echo >subdir/file2 file two is untracked on the main side &&
read_tree_u_must_succeed -m -u branch-point main side
Switched to branch 'side'
D file2
D subdir/file2
[side 4be225f] side adds file3 and removes file2
Author: A U Thor <author@example.com>
4 files changed, 2 insertions(+), 2 deletions(-)
delete mode 100644 file2
create mode 100644 file3
delete mode 100644 subdir/file2
create mode 100644 subdir/file3
Switched to branch 'main'
ok 6 - three-way not complaining on an untracked path in both
expecting success of 1004.7 'three-way not clobbering a working tree file':
git reset --hard &&
rm -f file2 subdir/file2 file3 subdir/file3 &&
git checkout main &&
echo >file3 file three created in main, untracked &&
echo >subdir/file3 file three created in main, untracked &&
if err=$(read_tree_u_must_succeed -m -u branch-point main side 2>&1)
then
echo should have complained
false
else
echo "happy to see $err"
fi
HEAD is now at dbb6421 main removes file2 and subdir/file2
Already on 'main'
happy to see error: Untracked working tree file 'file3' would be overwritten by merge.
ok 7 - three-way not clobbering a working tree file
expecting success of 1004.8 'three-way not complaining on an untracked file':
git reset --hard &&
rm -f file2 subdir/file2 file3 subdir/file3 &&
git checkout main &&
echo >file3 file three created in main, untracked &&
echo >subdir/file3 file three created in main, untracked &&
read_tree_u_must_succeed -m -u --exclude-per-directory=.gitignore branch-point main side
HEAD is now at dbb6421 main removes file2 and subdir/file2
Already on 'main'
ok 8 - three-way not complaining on an untracked file
expecting success of 1004.9 '3-way not overwriting local changes (setup)':
git reset --hard &&
git checkout -b side-a branch-point &&
echo >>file1 "new line to be kept in the merge result" &&
git commit -a -m "side-a changes file1" &&
git checkout -b side-b branch-point &&
echo >>file2 "new line to be kept in the merge result" &&
git commit -a -m "side-b changes file2" &&
git checkout side-a
HEAD is now at dbb6421 main removes file2 and subdir/file2
Switched to a new branch 'side-a'
[side-a 67c0594] side-a changes file1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Switched to a new branch 'side-b'
[side-b 3ad988a] side-b changes file2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Switched to branch 'side-a'
ok 9 - 3-way not overwriting local changes (setup)
expecting success of 1004.10 '3-way not overwriting local changes (our side)':
# At this point, file1 from side-a should be kept as side-b
# did not touch it.
git reset --hard &&
echo >>file1 "local changes" &&
read_tree_u_must_succeed -m -u branch-point side-a side-b &&
grep "new line to be kept" file1 &&
grep "local changes" file1
HEAD is now at 67c0594 side-a changes file1
new line to be kept in the merge result
local changes
ok 10 - 3-way not overwriting local changes (our side)
expecting success of 1004.11 '3-way not overwriting local changes (their side)':
# At this point, file2 from side-b should be taken as side-a
# did not touch it.
git reset --hard &&
echo >>file2 "local changes" &&
read_tree_u_must_fail -m -u branch-point side-a side-b &&
! grep "new line to be kept" file2 &&
grep "local changes" file2
HEAD is now at 67c0594 side-a changes file1
error: Entry 'file2' not uptodate. Cannot merge.
error: Entry 'file2' not uptodate. Cannot merge.
local changes
ok 11 - 3-way not overwriting local changes (their side)
expecting success of 1004.12 'funny symlink in work tree':
git reset --hard &&
git checkout -b sym-b side-b &&
mkdir -p a &&
>a/b &&
git add a/b &&
git commit -m "side adds a/b" &&
rm -fr a &&
git checkout -b sym-a side-a &&
mkdir -p a &&
test_ln_s_add ../b a/b &&
git commit -m "we add a/b" &&
read_tree_u_must_succeed -m -u sym-a sym-a sym-b
HEAD is now at 67c0594 side-a changes file1
Switched to a new branch 'sym-b'
[sym-b b05f19b] side adds a/b
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a/b
Switched to a new branch 'sym-a'
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
[sym-a c4bc40b] we add a/b
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 120000 a/b
ok 12 - funny symlink in work tree
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 1004.13 'funny symlink in work tree, un-unlink-able':
test_when_finished "chmod u+w a 2>/dev/null; rm -fr a b" &&
rm -fr a b &&
git reset --hard &&
git checkout sym-a &&
chmod a-w a &&
test_must_fail git read-tree -m -u sym-a sym-a sym-b
HEAD is now at c4bc40b we add a/b
Already on 'sym-a'
error: unable to unlink old 'a/b': Permission denied
ok 13 - funny symlink in work tree, un-unlink-able
expecting success of 1004.14 'D/F setup':
git reset --hard &&
git checkout side-a &&
rm -f subdir/file2 &&
mkdir subdir/file2 &&
echo qfwfq >subdir/file2/another &&
git add subdir/file2/another &&
test_tick &&
git commit -m "side-a changes file2 to directory"
HEAD is now at c4bc40b we add a/b
Switched to branch 'side-a'
[side-a d094fd2] side-a changes file2 to directory
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 subdir/file2
create mode 100644 subdir/file2/another
ok 14 - D/F setup
expecting success of 1004.15 'D/F':
git checkout side-b &&
read_tree_u_must_succeed -m -u branch-point side-b side-a &&
git ls-files -u >actual &&
(
a=$(git rev-parse branch-point:subdir/file2) &&
b=$(git rev-parse side-a:subdir/file2/another) &&
echo "100644 $a 1 subdir/file2" &&
echo "100644 $a 2 subdir/file2" &&
echo "100644 $b 3 subdir/file2/another"
) >expect &&
test_cmp expect actual
Switched to branch 'side-b'
ok 15 - D/F
expecting success of 1004.16 'D/F resolve':
git reset --hard &&
git checkout side-b &&
git merge-resolve branch-point -- side-b side-a
HEAD is now at 3ad988a side-b changes file2
Already on 'side-b'
Trying simple merge.
Simple merge failed, trying Automatic merge.
Adding subdir/file2/another
ok 16 - D/F resolve
expecting success of 1004.17 'D/F recursive':
git reset --hard &&
git checkout side-b &&
git merge-recursive branch-point -- side-b side-a
HEAD is now at 3ad988a side-b changes file2
Already on 'side-b'
Merging side-b with side-a
Merging:
3ad988a side-b changes file2
d094fd2 side-a changes file2 to directory
found 1 common ancestor:
eb5336a initial
Adding subdir/file2/another
Removing subdir/file2 to make room for subdirectory
Removing subdir/file2
ok 17 - D/F recursive
# passed all 17 test(s)
1..17
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1005-read-tree-reset.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1005-read-tree-reset/.git/
expecting success of 1005.1 'setup':
git init &&
mkdir df &&
echo content >df/file &&
git add df/file &&
git commit -m one &&
git ls-files >expect &&
rm -rf df &&
echo content >df &&
git add df &&
echo content >new &&
git add new &&
git commit -m two
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1005-read-tree-reset/.git/
[master (root-commit) 92e0c46] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 df/file
[master 12f5e11] two
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+)
rename df/file => df (100%)
create mode 100644 new
ok 1 - setup
expecting success of 1005.2 'reset should work':
read_tree_u_must_succeed -u --reset HEAD^ &&
git ls-files >actual &&
test_cmp expect actual
ok 2 - reset should work
expecting success of 1005.3 'reset should remove remnants from a failed merge':
read_tree_u_must_succeed --reset -u HEAD &&
git ls-files -s >expect &&
sha1=$(git rev-parse :new) &&
(
echo "100644 $sha1 1 old" &&
echo "100644 $sha1 3 old"
) | git update-index --index-info &&
>old &&
git ls-files -s &&
read_tree_u_must_succeed --reset -u HEAD &&
git ls-files -s >actual &&
! test -f old
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 0 df
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 0 new
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 1 old
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 3 old
ok 3 - reset should remove remnants from a failed merge
expecting success of 1005.4 'two-way reset should remove remnants too':
read_tree_u_must_succeed --reset -u HEAD &&
git ls-files -s >expect &&
sha1=$(git rev-parse :new) &&
(
echo "100644 $sha1 1 old" &&
echo "100644 $sha1 3 old"
) | git update-index --index-info &&
>old &&
git ls-files -s &&
read_tree_u_must_succeed --reset -u HEAD HEAD &&
git ls-files -s >actual &&
! test -f old
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 0 df
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 0 new
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 1 old
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 3 old
ok 4 - two-way reset should remove remnants too
expecting success of 1005.5 'Porcelain reset should remove remnants too':
read_tree_u_must_succeed --reset -u HEAD &&
git ls-files -s >expect &&
sha1=$(git rev-parse :new) &&
(
echo "100644 $sha1 1 old" &&
echo "100644 $sha1 3 old"
) | git update-index --index-info &&
>old &&
git ls-files -s &&
git reset --hard &&
git ls-files -s >actual &&
! test -f old
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 0 df
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 0 new
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 1 old
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 3 old
HEAD is now at 12f5e11 two
ok 5 - Porcelain reset should remove remnants too
expecting success of 1005.6 'Porcelain checkout -f should remove remnants too':
read_tree_u_must_succeed --reset -u HEAD &&
git ls-files -s >expect &&
sha1=$(git rev-parse :new) &&
(
echo "100644 $sha1 1 old" &&
echo "100644 $sha1 3 old"
) | git update-index --index-info &&
>old &&
git ls-files -s &&
git checkout -f &&
git ls-files -s >actual &&
! test -f old
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 0 df
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 0 new
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 1 old
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 3 old
ok 6 - Porcelain checkout -f should remove remnants too
expecting success of 1005.7 'Porcelain checkout -f HEAD should remove remnants too':
read_tree_u_must_succeed --reset -u HEAD &&
git ls-files -s >expect &&
sha1=$(git rev-parse :new) &&
(
echo "100644 $sha1 1 old" &&
echo "100644 $sha1 3 old"
) | git update-index --index-info &&
>old &&
git ls-files -s &&
git checkout -f HEAD &&
git ls-files -s >actual &&
! test -f old
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 0 df
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 0 new
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 1 old
100644 d95f3ad14dee633a758d2e331151e950dd13e4ed 3 old
ok 7 - Porcelain checkout -f HEAD should remove remnants too
# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1007-hash-object.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1007-hash-object/.git/
expecting success of 1007.1 'setup':
setup_repo &&
test_oid_cache <<-EOF
hello sha1:5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689
hello sha256:1e3b6c04d2eeb2b3e45c8a330445404c0b7cc7b257e2b097167d26f5230090c4
example sha1:ddd3f836d3e3fbb7ae289aa9ae83536f76956399
example sha256:b44fe1fe65589848253737db859bd490453510719d7424daab03daf0767b85ae
EOF
ok 1 - setup
expecting success of 1007.2 'multiple '--stdin's are rejected':
echo example | test_must_fail git hash-object --stdin --stdin
error: Multiple --stdin arguments are not supported
usage: git hash-object [-t <type>] [-w] [--path=<file> | --no-filters]
[--stdin [--literally]] [--] <file>...
or: git hash-object [-t <type>] [-w] --stdin-paths [--no-filters]
-t <type> object type
-w write the object into the object database
--stdin read the object from stdin
--stdin-paths read file names from stdin
--no-filters store file as is without filters
--literally just hash any random garbage to create corrupt objects for debugging Git
--path <file> process file as it were from this path
ok 2 - multiple '--stdin's are rejected
expecting success of 1007.3 'Can't use --stdin and --stdin-paths together':
echo example | test_must_fail git hash-object --stdin --stdin-paths &&
echo example | test_must_fail git hash-object --stdin-paths --stdin
error: Can't use --stdin-paths with --stdin
usage: git hash-object [-t <type>] [-w] [--path=<file> | --no-filters]
[--stdin [--literally]] [--] <file>...
or: git hash-object [-t <type>] [-w] --stdin-paths [--no-filters]
-t <type> object type
-w write the object into the object database
--stdin read the object from stdin
--stdin-paths read file names from stdin
--no-filters store file as is without filters
--literally just hash any random garbage to create corrupt objects for debugging Git
--path <file> process file as it were from this path
error: Can't use --stdin-paths with --stdin
usage: git hash-object [-t <type>] [-w] [--path=<file> | --no-filters]
[--stdin [--literally]] [--] <file>...
or: git hash-object [-t <type>] [-w] --stdin-paths [--no-filters]
-t <type> object type
-w write the object into the object database
--stdin read the object from stdin
--stdin-paths read file names from stdin
--no-filters store file as is without filters
--literally just hash any random garbage to create corrupt objects for debugging Git
--path <file> process file as it were from this path
ok 3 - Can't use --stdin and --stdin-paths together
expecting success of 1007.4 'Can't pass filenames as arguments with --stdin-paths':
echo example | test_must_fail git hash-object --stdin-paths hello
error: Can't specify files with --stdin-paths
usage: git hash-object [-t <type>] [-w] [--path=<file> | --no-filters]
[--stdin [--literally]] [--] <file>...
or: git hash-object [-t <type>] [-w] --stdin-paths [--no-filters]
-t <type> object type
-w write the object into the object database
--stdin read the object from stdin
--stdin-paths read file names from stdin
--no-filters store file as is without filters
--literally just hash any random garbage to create corrupt objects for debugging Git
--path <file> process file as it were from this path
ok 4 - Can't pass filenames as arguments with --stdin-paths
expecting success of 1007.5 'Can't use --path with --stdin-paths':
echo example | test_must_fail git hash-object --stdin-paths --path=foo
error: Can't use --stdin-paths with --path
usage: git hash-object [-t <type>] [-w] [--path=<file> | --no-filters]
[--stdin [--literally]] [--] <file>...
or: git hash-object [-t <type>] [-w] --stdin-paths [--no-filters]
-t <type> object type
-w write the object into the object database
--stdin read the object from stdin
--stdin-paths read file names from stdin
--no-filters store file as is without filters
--literally just hash any random garbage to create corrupt objects for debugging Git
--path <file> process file as it were from this path
ok 5 - Can't use --path with --stdin-paths
expecting success of 1007.6 'Can't use --path with --no-filters':
test_must_fail git hash-object --no-filters --path=foo
error: Can't use --path with --no-filters
usage: git hash-object [-t <type>] [-w] [--path=<file> | --no-filters]
[--stdin [--literally]] [--] <file>...
or: git hash-object [-t <type>] [-w] --stdin-paths [--no-filters]
-t <type> object type
-w write the object into the object database
--stdin read the object from stdin
--stdin-paths read file names from stdin
--no-filters store file as is without filters
--literally just hash any random garbage to create corrupt objects for debugging Git
--path <file> process file as it were from this path
ok 6 - Can't use --path with --no-filters
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1007-hash-object/test/.git/
expecting success of 1007.7 'hash a file':
test "$(test_oid hello)" = $(git hash-object hello)
ok 7 - hash a file
expecting success of 1007.8 'blob does not exist in database':
test_must_fail git cat-file blob 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689
fatal: git cat-file 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689: bad file
ok 8 - blob does not exist in database
expecting success of 1007.9 'hash from stdin':
test "$(test_oid example)" = $(git hash-object --stdin < example)
ok 9 - hash from stdin
expecting success of 1007.10 'blob does not exist in database':
test_must_fail git cat-file blob ddd3f836d3e3fbb7ae289aa9ae83536f76956399
fatal: git cat-file ddd3f836d3e3fbb7ae289aa9ae83536f76956399: bad file
ok 10 - blob does not exist in database
expecting success of 1007.11 'hash a file and write to database':
test "$(test_oid hello)" = $(git hash-object -w hello)
ok 11 - hash a file and write to database
expecting success of 1007.12 'blob exists in database':
git cat-file blob 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689
Hello Worldok 12 - blob exists in database
expecting success of 1007.13 'git hash-object --stdin file1 <file0 first operates on file0, then file1':
echo foo > file1 &&
obname0=$(echo bar | git hash-object --stdin) &&
obname1=$(git hash-object file1) &&
obname0new=$(echo bar | git hash-object --stdin file1 | sed -n -e 1p) &&
obname1new=$(echo bar | git hash-object --stdin file1 | sed -n -e 2p) &&
test "$obname0" = "$obname0new" &&
test "$obname1" = "$obname1new"
ok 13 - git hash-object --stdin file1 <file0 first operates on file0, then file1
expecting success of 1007.14 'set up crlf tests':
echo fooQ | tr Q "\\015" >file0 &&
cp file0 file1 &&
echo "file0 -crlf" >.gitattributes &&
echo "file1 crlf" >>.gitattributes &&
git config core.autocrlf true &&
file0_sha=$(git hash-object file0) &&
file1_sha=$(git hash-object file1) &&
test "$file0_sha" != "$file1_sha"
ok 14 - set up crlf tests
expecting success of 1007.15 'check that appropriate filter is invoke when --path is used':
path1_sha=$(git hash-object --path=file1 file0) &&
path0_sha=$(git hash-object --path=file0 file1) &&
test "$file0_sha" = "$path0_sha" &&
test "$file1_sha" = "$path1_sha" &&
path1_sha=$(cat file0 | git hash-object --path=file1 --stdin) &&
path0_sha=$(cat file1 | git hash-object --path=file0 --stdin) &&
test "$file0_sha" = "$path0_sha" &&
test "$file1_sha" = "$path1_sha"
ok 15 - check that appropriate filter is invoke when --path is used
expecting success of 1007.16 'gitattributes also work in a subdirectory':
mkdir subdir &&
(
cd subdir &&
subdir_sha0=$(git hash-object ../file0) &&
subdir_sha1=$(git hash-object ../file1) &&
test "$file0_sha" = "$subdir_sha0" &&
test "$file1_sha" = "$subdir_sha1"
)
ok 16 - gitattributes also work in a subdirectory
expecting success of 1007.17 '--path works in a subdirectory':
(
cd subdir &&
path1_sha=$(git hash-object --path=../file1 ../file0) &&
path0_sha=$(git hash-object --path=../file0 ../file1) &&
test "$file0_sha" = "$path0_sha" &&
test "$file1_sha" = "$path1_sha"
)
ok 17 - --path works in a subdirectory
expecting success of 1007.18 'check that --no-filters option works':
nofilters_file1=$(git hash-object --no-filters file1) &&
test "$file0_sha" = "$nofilters_file1" &&
nofilters_file1=$(cat file1 | git hash-object --stdin) &&
test "$file0_sha" = "$nofilters_file1"
ok 18 - check that --no-filters option works
expecting success of 1007.19 'check that --no-filters option works with --stdin-paths':
nofilters_file1=$(echo "file1" | git hash-object --stdin-paths --no-filters) &&
test "$file0_sha" = "$nofilters_file1"
ok 19 - check that --no-filters option works with --stdin-paths
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1007-hash-object/test/.git/
expecting success of 1007.20 'hash from stdin and write to database (-w --stdin)':
test "$(test_oid example)" = $(git hash-object $args < example)
ok 20 - hash from stdin and write to database (-w --stdin)
expecting success of 1007.21 'blob exists in database':
git cat-file blob ddd3f836d3e3fbb7ae289aa9ae83536f76956399
This is an exampleok 21 - blob exists in database
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1007-hash-object/test/.git/
expecting success of 1007.22 'hash from stdin and write to database (--stdin -w)':
test "$(test_oid example)" = $(git hash-object $args < example)
ok 22 - hash from stdin and write to database (--stdin -w)
expecting success of 1007.23 'blob exists in database':
git cat-file blob ddd3f836d3e3fbb7ae289aa9ae83536f76956399
This is an exampleok 23 - blob exists in database
expecting success of 1007.24 'hash two files with names on stdin':
test "$oids" = "$(echo_without_newline "$filenames" | git hash-object --stdin-paths)"
ok 24 - hash two files with names on stdin
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1007-hash-object/test/.git/
expecting success of 1007.25 'hash two files with names on stdin and write to database (-w --stdin-paths)':
test "$oids" = "$(echo_without_newline "$filenames" | git hash-object $args)"
ok 25 - hash two files with names on stdin and write to database (-w --stdin-paths)
expecting success of 1007.26 'blob exists in database':
git cat-file blob 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689
Hello Worldok 26 - blob exists in database
expecting success of 1007.27 'blob exists in database':
git cat-file blob ddd3f836d3e3fbb7ae289aa9ae83536f76956399
This is an exampleok 27 - blob exists in database
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1007-hash-object/test/.git/
expecting success of 1007.28 'hash two files with names on stdin and write to database (--stdin-paths -w)':
test "$oids" = "$(echo_without_newline "$filenames" | git hash-object $args)"
ok 28 - hash two files with names on stdin and write to database (--stdin-paths -w)
expecting success of 1007.29 'blob exists in database':
git cat-file blob 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689
Hello Worldok 29 - blob exists in database
expecting success of 1007.30 'blob exists in database':
git cat-file blob ddd3f836d3e3fbb7ae289aa9ae83536f76956399
This is an exampleok 30 - blob exists in database
expecting success of 1007.31 'too-short tree':
echo abc >malformed-tree &&
test_must_fail git hash-object -t tree malformed-tree 2>err &&
grep "too-short tree object" err
error: too-short tree object
ok 31 - too-short tree
expecting success of 1007.32 'malformed mode in tree':
hex_oid=$(echo foo | git hash-object --stdin -w) &&
bin_oid=$(echo $hex_oid | hex2oct) &&
printf "9100644 \0$bin_oid" >tree-with-malformed-mode &&
test_must_fail git hash-object -t tree tree-with-malformed-mode 2>err &&
grep "malformed mode in tree entry" err
error: malformed mode in tree entry
ok 32 - malformed mode in tree
expecting success of 1007.33 'empty filename in tree':
hex_oid=$(echo foo | git hash-object --stdin -w) &&
bin_oid=$(echo $hex_oid | hex2oct) &&
printf "100644 \0$bin_oid" >tree-with-empty-filename &&
test_must_fail git hash-object -t tree tree-with-empty-filename 2>err &&
grep "empty filename in tree entry" err
error: empty filename in tree entry
ok 33 - empty filename in tree
expecting success of 1007.34 'duplicate filename in tree':
hex_oid=$(echo foo | git hash-object --stdin -w) &&
bin_oid=$(echo $hex_oid | hex2oct) &&
{
printf "100644 file\0$bin_oid" &&
printf "100644 file\0$bin_oid"
} >tree-with-duplicate-filename &&
test_must_fail git hash-object -t tree tree-with-duplicate-filename 2>err &&
grep "duplicateEntries" err
error: object fails fsck: duplicateEntries: contains duplicate file entries
ok 34 - duplicate filename in tree
expecting success of 1007.35 'corrupt commit':
test_must_fail git hash-object -t commit --stdin </dev/null
error: object fails fsck: unterminatedHeader: unterminated header
fatal: refusing to create malformed object
ok 35 - corrupt commit
expecting success of 1007.36 'corrupt tag':
test_must_fail git hash-object -t tag --stdin </dev/null
error: object fails fsck: unterminatedHeader: unterminated header
fatal: refusing to create malformed object
ok 36 - corrupt tag
expecting success of 1007.37 'hash-object complains about bogus type name':
test_must_fail git hash-object -t bogus --stdin </dev/null
fatal: invalid object type "bogus"
ok 37 - hash-object complains about bogus type name
expecting success of 1007.38 'hash-object complains about truncated type name':
test_must_fail git hash-object -t bl --stdin </dev/null
fatal: invalid object type "bl"
ok 38 - hash-object complains about truncated type name
expecting success of 1007.39 '--literally':
t=1234567890 &&
echo example | git hash-object -t $t --literally --stdin
f78b23c3f872d473c764d5fcf4fb39af8bbf2123
ok 39 - --literally
expecting success of 1007.40 '--literally with extra-long type':
t=12345678901234567890123456789012345678901234567890 &&
t="$t$t$t$t$t$t$t$t$t$t$t$t$t$t$t$t$t$t$t$t$t$t$t$t$t$t$t$t$t$t" &&
echo example | git hash-object -t $t --literally --stdin
2a881776ee43e849175ee7158075560ca0ae7692
ok 40 - --literally with extra-long type
# passed all 40 test(s)
1..40
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1008-read-tree-overlay.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
[main (root-commit) 4d54ff5] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a
[main a9fb064] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b
Switched to a new branch 'side'
[side 2be041c] third
Author: A U Thor <author@example.com>
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 main 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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1009-read-tree-new-index.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
[main (root-commit) 4d54ff5] initial
Author: A U Thor <author@example.com>
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 main
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 main
ok 3 - empty index file
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1010-mktree.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1010-mktree/.git/
expecting success of 1010.1 'setup':
for d in a a- a0
do
mkdir "$d" && echo "$d/one" >"$d/one" &&
git add "$d" || return 1
done &&
echo zero >one &&
git update-index --add --info-only one &&
git write-tree --missing-ok >tree.missing &&
git ls-tree $(cat tree.missing) >top.missing &&
git ls-tree -r $(cat tree.missing) >all.missing &&
echo one >one &&
git add one &&
git write-tree >tree &&
git ls-tree $(cat tree) >top &&
git ls-tree -r $(cat tree) >all &&
test_tick &&
git commit -q -m one &&
H=$(git rev-parse HEAD) &&
git update-index --add --cacheinfo 160000 $H sub &&
test_tick &&
git commit -q -m two &&
git rev-parse HEAD^{tree} >tree.withsub &&
git ls-tree HEAD >top.withsub &&
git ls-tree -r HEAD >all.withsub
ok 1 - setup
expecting success of 1010.2 'ls-tree piped to mktree (1)':
git mktree <top >actual &&
test_cmp tree actual
ok 2 - ls-tree piped to mktree (1)
expecting success of 1010.3 'ls-tree piped to mktree (2)':
git mktree <top.withsub >actual &&
test_cmp tree.withsub actual
ok 3 - ls-tree piped to mktree (2)
expecting success of 1010.4 'ls-tree output in wrong order given to mktree (1)':
perl -e "print reverse <>" <top |
git mktree >actual &&
test_cmp tree actual
ok 4 - ls-tree output in wrong order given to mktree (1)
expecting success of 1010.5 'ls-tree output in wrong order given to mktree (2)':
perl -e "print reverse <>" <top.withsub |
git mktree >actual &&
test_cmp tree.withsub actual
ok 5 - ls-tree output in wrong order given to mktree (2)
expecting success of 1010.6 'allow missing object with --missing':
git mktree --missing <top.missing >actual &&
test_cmp tree.missing actual
ok 6 - allow missing object with --missing
expecting success of 1010.7 'mktree refuses to read ls-tree -r output (1)':
test_must_fail git mktree <all >actual
fatal: path a-/one contains slash
ok 7 - mktree refuses to read ls-tree -r output (1)
expecting success of 1010.8 'mktree refuses to read ls-tree -r output (2)':
test_must_fail git mktree <all.withsub >actual
fatal: path a-/one contains slash
ok 8 - mktree refuses to read ls-tree -r output (2)
# passed all 8 test(s)
1..8
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1011-read-tree-sparse-checkout.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
[master 9598e22] modified and added
Author: A U Thor <author@example.com>
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 <author@example.com>
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 <new-branch-name>
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':
mkdir .git/info &&
echo >.git/info/sparse-checkout &&
read_tree_u_must_succeed -m -u HEAD &&
git ls-files -t >result &&
test_cmp expected.swt result &&
test_path_is_file init.t &&
test_path_is_file 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_path_is_file init.t &&
test_path_is_file 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_path_is_missing init.t &&
test_path_is_missing 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_path_is_missing init.t &&
test_path_is_file 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_path_is_missing init.t &&
test_path_is_file 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_path_is_missing init.t &&
test_path_is_missing sub/added &&
test_path_is_file 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_path_is_file init.t &&
test_path_is_file sub/added &&
test_path_is_missing 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_path_is_missing init.t &&
test_path_is_file 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_path_is_file init.t &&
test_path_is_missing 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_path_is_missing 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 will not throw away dirty changes, non-sparse':
echo "/*" >.git/info/sparse-checkout &&
read_tree_u_must_succeed -m -u HEAD &&
echo dirty >init.t &&
read_tree_u_must_fail -m -u HEAD^ &&
test_path_is_file init.t &&
grep -q dirty init.t
error: Entry 'init.t' not uptodate. Cannot merge.
error: Entry 'init.t' not uptodate. Cannot merge.
ok 13 - read-tree will not throw away dirty changes, non-sparse
expecting success of 1011.14 'read-tree will not throw away dirty changes, sparse':
echo "/*" >.git/info/sparse-checkout &&
read_tree_u_must_succeed -m -u HEAD &&
echo dirty >init.t &&
echo sub/added >.git/info/sparse-checkout &&
read_tree_u_must_fail -m -u HEAD^ &&
test_path_is_file init.t &&
grep -q dirty init.t
error: Entry 'init.t' not uptodate. Cannot merge.
error: Entry 'init.t' not uptodate. Cannot merge.
ok 14 - read-tree will not throw away dirty changes, sparse
expecting success of 1011.15 '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_fail -m -u HEAD^ &&
grep -q dirty init.t &&
rm init.t
HEAD is now at 9598e22 modified and added
error: Entry 'init.t' not uptodate. Cannot merge.
error: Entry 'init.t' not uptodate. Cannot merge.
ok 15 - read-tree updates worktree, dirty case
expecting success of 1011.16 '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 16 - read-tree removes worktree, dirty case
expecting success of 1011.17 '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_path_is_missing sub/added
Previous HEAD position was 9598e22 modified and added
HEAD is now at de70956 removed
ok 17 - read-tree adds to worktree, absent case
expecting success of 1011.18 '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 18 - read-tree adds to worktree, dirty case
expecting success of 1011.19 '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_path_is_missing 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 19 - index removal and worktree narrowing at the same time
expecting success of 1011.20 '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 20 - read-tree --reset removes outside worktree
expecting success of 1011.21 '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_cmp expected actual
Previous HEAD position was de70956 removed
HEAD is now at 2519212 init
ok 21 - print warnings when some worktree updates disabled
expecting success of 1011.22 '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 22 - checkout without --ignore-skip-worktree-bits
expecting success of 1011.23 '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 23 - checkout with --ignore-skip-worktree-bits
# passed all 23 test(s)
1..23
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1006-cat-file.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1006-cat-file/.git/
expecting success of 1006.1 'usage: cmdmode -e -p':
test_cmdmode_usage git cat-file $switches
error: switch `p' is incompatible with -e
ok 1 - usage: cmdmode -e -p
expecting success of 1006.2 'usage: cmdmode -p -t':
test_cmdmode_usage git cat-file $switches
error: switch `t' is incompatible with -p
ok 2 - usage: cmdmode -p -t
expecting success of 1006.3 'usage: cmdmode -t -s':
test_cmdmode_usage git cat-file $switches
error: switch `s' is incompatible with -t
ok 3 - usage: cmdmode -t -s
expecting success of 1006.4 'usage: cmdmode -s --textconv':
test_cmdmode_usage git cat-file $switches
error: option `textconv' is incompatible with -s
ok 4 - usage: cmdmode -s --textconv
expecting success of 1006.5 'usage: cmdmode --textconv --filters':
test_cmdmode_usage git cat-file $switches
error: option `filters' is incompatible with --textconv
ok 5 - usage: cmdmode --textconv --filters
expecting success of 1006.6 'usage: cmdmode --batch-all-objects -e':
test_cmdmode_usage git cat-file $switches
error: switch `e' is incompatible with --batch-all-objects
ok 6 - usage: cmdmode --batch-all-objects -e
expecting success of 1006.7 'usage: incompatible options: --path with --batch':
test_incompatible_usage git cat-file --path=foo $opt
fatal: '--path=<path|tree-ish>' needs '--filters' or '--textconv'
ok 7 - usage: incompatible options: --path with --batch
expecting success of 1006.8 'usage: incompatible options: --path with --batch-check':
test_incompatible_usage git cat-file --path=foo $opt
fatal: '--path=<path|tree-ish>' needs '--filters' or '--textconv'
ok 8 - usage: incompatible options: --path with --batch-check
expecting success of 1006.9 'usage: --textconv requires another option':
test_missing_usage git cat-file $opt
fatal: <rev> required with '--textconv'
ok 9 - usage: --textconv requires another option
expecting success of 1006.10 'usage: --filters requires another option':
test_missing_usage git cat-file $opt
fatal: <rev> required with '--filters'
ok 10 - usage: --filters requires another option
expecting success of 1006.11 'usage: -e requires another option':
test_missing_usage git cat-file $opt
fatal: <object> required with '-e'
ok 11 - usage: -e requires another option
expecting success of 1006.12 'usage: incompatible options: -e and --batch':
test_incompatible_usage git cat-file $opt $opt2
fatal: '-e' is incompatible with batch mode
ok 12 - usage: incompatible options: -e and --batch
expecting success of 1006.13 'usage: incompatible options: -e and --batch-check':
test_incompatible_usage git cat-file $opt $opt2
fatal: '-e' is incompatible with batch mode
ok 13 - usage: incompatible options: -e and --batch-check
expecting success of 1006.14 'usage: incompatible options: -e and --follow-symlinks':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--follow-symlinks' requires a batch mode
ok 14 - usage: incompatible options: -e and --follow-symlinks
expecting success of 1006.15 'usage: incompatible options: -e and --path=foo HEAD:some-path.txt':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--path=<path|tree-ish>' needs '--filters' or '--textconv'
ok 15 - usage: incompatible options: -e and --path=foo HEAD:some-path.txt
expecting success of 1006.16 'usage: -p requires another option':
test_missing_usage git cat-file $opt
fatal: <object> required with '-p'
ok 16 - usage: -p requires another option
expecting success of 1006.17 'usage: incompatible options: -p and --batch':
test_incompatible_usage git cat-file $opt $opt2
fatal: '-p' is incompatible with batch mode
ok 17 - usage: incompatible options: -p and --batch
expecting success of 1006.18 'usage: incompatible options: -p and --batch-check':
test_incompatible_usage git cat-file $opt $opt2
fatal: '-p' is incompatible with batch mode
ok 18 - usage: incompatible options: -p and --batch-check
expecting success of 1006.19 'usage: incompatible options: -p and --follow-symlinks':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--follow-symlinks' requires a batch mode
ok 19 - usage: incompatible options: -p and --follow-symlinks
expecting success of 1006.20 'usage: incompatible options: -p and --path=foo HEAD:some-path.txt':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--path=<path|tree-ish>' needs '--filters' or '--textconv'
ok 20 - usage: incompatible options: -p and --path=foo HEAD:some-path.txt
expecting success of 1006.21 'usage: -t requires another option':
test_missing_usage git cat-file $opt
fatal: <object> required with '-t'
ok 21 - usage: -t requires another option
expecting success of 1006.22 'usage: incompatible options: -t and --batch':
test_incompatible_usage git cat-file $opt $opt2
fatal: '-t' is incompatible with batch mode
ok 22 - usage: incompatible options: -t and --batch
expecting success of 1006.23 'usage: incompatible options: -t and --batch-check':
test_incompatible_usage git cat-file $opt $opt2
fatal: '-t' is incompatible with batch mode
ok 23 - usage: incompatible options: -t and --batch-check
expecting success of 1006.24 'usage: incompatible options: -t and --follow-symlinks':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--follow-symlinks' requires a batch mode
ok 24 - usage: incompatible options: -t and --follow-symlinks
expecting success of 1006.25 'usage: incompatible options: -t and --path=foo HEAD:some-path.txt':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--path=<path|tree-ish>' needs '--filters' or '--textconv'
ok 25 - usage: incompatible options: -t and --path=foo HEAD:some-path.txt
expecting success of 1006.26 'usage: -s requires another option':
test_missing_usage git cat-file $opt
fatal: <object> required with '-s'
ok 26 - usage: -s requires another option
expecting success of 1006.27 'usage: incompatible options: -s and --batch':
test_incompatible_usage git cat-file $opt $opt2
fatal: '-s' is incompatible with batch mode
ok 27 - usage: incompatible options: -s and --batch
expecting success of 1006.28 'usage: incompatible options: -s and --batch-check':
test_incompatible_usage git cat-file $opt $opt2
fatal: '-s' is incompatible with batch mode
ok 28 - usage: incompatible options: -s and --batch-check
expecting success of 1006.29 'usage: incompatible options: -s and --follow-symlinks':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--follow-symlinks' requires a batch mode
ok 29 - usage: incompatible options: -s and --follow-symlinks
expecting success of 1006.30 'usage: incompatible options: -s and --path=foo HEAD:some-path.txt':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--path=<path|tree-ish>' needs '--filters' or '--textconv'
ok 30 - usage: incompatible options: -s and --path=foo HEAD:some-path.txt
expecting success of 1006.31 'usage: too many arguments: -e one two three':
test_too_many_arguments git cat-file $opt $args
fatal: too many arguments
ok 31 - usage: too many arguments: -e one two three
expecting success of 1006.32 'usage: incompatible arguments: -e with batch option --buffer':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--buffer' requires a batch mode
ok 32 - usage: incompatible arguments: -e with batch option --buffer
expecting success of 1006.33 'usage: incompatible arguments: -e with batch option --follow-symlinks':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--follow-symlinks' requires a batch mode
ok 33 - usage: incompatible arguments: -e with batch option --follow-symlinks
expecting success of 1006.34 'usage: too many arguments: -p one two three':
test_too_many_arguments git cat-file $opt $args
fatal: too many arguments
ok 34 - usage: too many arguments: -p one two three
expecting success of 1006.35 'usage: incompatible arguments: -p with batch option --buffer':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--buffer' requires a batch mode
ok 35 - usage: incompatible arguments: -p with batch option --buffer
expecting success of 1006.36 'usage: incompatible arguments: -p with batch option --follow-symlinks':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--follow-symlinks' requires a batch mode
ok 36 - usage: incompatible arguments: -p with batch option --follow-symlinks
expecting success of 1006.37 'usage: too many arguments: -t one two three':
test_too_many_arguments git cat-file $opt $args
fatal: too many arguments
ok 37 - usage: too many arguments: -t one two three
expecting success of 1006.38 'usage: incompatible arguments: -t with batch option --buffer':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--buffer' requires a batch mode
ok 38 - usage: incompatible arguments: -t with batch option --buffer
expecting success of 1006.39 'usage: incompatible arguments: -t with batch option --follow-symlinks':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--follow-symlinks' requires a batch mode
ok 39 - usage: incompatible arguments: -t with batch option --follow-symlinks
expecting success of 1006.40 'usage: too many arguments: -s one two three':
test_too_many_arguments git cat-file $opt $args
fatal: too many arguments
ok 40 - usage: too many arguments: -s one two three
expecting success of 1006.41 'usage: incompatible arguments: -s with batch option --buffer':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--buffer' requires a batch mode
ok 41 - usage: incompatible arguments: -s with batch option --buffer
expecting success of 1006.42 'usage: incompatible arguments: -s with batch option --follow-symlinks':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--follow-symlinks' requires a batch mode
ok 42 - usage: incompatible arguments: -s with batch option --follow-symlinks
expecting success of 1006.43 'usage: too many arguments: --textconv one two three':
test_too_many_arguments git cat-file $opt $args
fatal: too many arguments
ok 43 - usage: too many arguments: --textconv one two three
expecting success of 1006.44 'usage: incompatible arguments: --textconv with batch option --buffer':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--buffer' requires a batch mode
ok 44 - usage: incompatible arguments: --textconv with batch option --buffer
expecting success of 1006.45 'usage: incompatible arguments: --textconv with batch option --follow-symlinks':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--follow-symlinks' requires a batch mode
ok 45 - usage: incompatible arguments: --textconv with batch option --follow-symlinks
expecting success of 1006.46 'usage: too many arguments: --filters one two three':
test_too_many_arguments git cat-file $opt $args
fatal: too many arguments
ok 46 - usage: too many arguments: --filters one two three
expecting success of 1006.47 'usage: incompatible arguments: --filters with batch option --buffer':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--buffer' requires a batch mode
ok 47 - usage: incompatible arguments: --filters with batch option --buffer
expecting success of 1006.48 'usage: incompatible arguments: --filters with batch option --follow-symlinks':
test_incompatible_usage git cat-file $opt $opt2
fatal: '--follow-symlinks' requires a batch mode
ok 48 - usage: incompatible arguments: --filters with batch option --follow-symlinks
expecting success of 1006.49 'usage: bad option combination: --buffer without batch mode':
test_incompatible_usage git cat-file $opt &&
test_incompatible_usage git cat-file $opt commit HEAD
fatal: '--buffer' requires a batch mode
fatal: '--buffer' requires a batch mode
ok 49 - usage: bad option combination: --buffer without batch mode
expecting success of 1006.50 'usage: bad option combination: --follow-symlinks without batch mode':
test_incompatible_usage git cat-file $opt &&
test_incompatible_usage git cat-file $opt commit HEAD
fatal: '--follow-symlinks' requires a batch mode
fatal: '--follow-symlinks' requires a batch mode
ok 50 - usage: bad option combination: --follow-symlinks without batch mode
expecting success of 1006.51 'usage: bad option combination: --batch-all-objects without batch mode':
test_incompatible_usage git cat-file $opt &&
test_incompatible_usage git cat-file $opt commit HEAD
fatal: '--batch-all-objects' requires a batch mode
fatal: '--batch-all-objects' requires a batch mode
ok 51 - usage: bad option combination: --batch-all-objects without batch mode
expecting success of 1006.52 'usage: bad option combination: -z without batch mode':
test_incompatible_usage git cat-file $opt &&
test_incompatible_usage git cat-file $opt commit HEAD
fatal: '-z' requires a batch mode
fatal: '-z' requires a batch mode
ok 52 - usage: bad option combination: -z without batch mode
expecting success of 1006.53 'setup':
echo_without_newline "$hello_content" > hello &&
git update-index --add hello
ok 53 - setup
expecting success of 1006.54 'blob exists':
git cat-file -e $sha1
ok 54 - blob exists
expecting success of 1006.55 'Type of blob is correct':
echo $type >expect &&
git cat-file -t $sha1 >actual &&
test_cmp expect actual
ok 55 - Type of blob is correct
expecting success of 1006.56 'Size of blob is correct':
echo $size >expect &&
git cat-file -s $sha1 >actual &&
test_cmp expect actual
ok 56 - Size of blob is correct
expecting success of 1006.57 'Type of blob is correct using --allow-unknown-type':
echo $type >expect &&
git cat-file -t --allow-unknown-type $sha1 >actual &&
test_cmp expect actual
ok 57 - Type of blob is correct using --allow-unknown-type
expecting success of 1006.58 'Size of blob is correct using --allow-unknown-type':
echo $size >expect &&
git cat-file -s --allow-unknown-type $sha1 >actual &&
test_cmp expect actual
ok 58 - Size of blob is correct using --allow-unknown-type
expecting success of 1006.59 'Content of blob is correct':
maybe_remove_timestamp "$content" $no_ts >expect &&
maybe_remove_timestamp "$(git cat-file $type $sha1)" $no_ts >actual &&
test_cmp expect actual
ok 59 - Content of blob is correct
expecting success of 1006.60 'Pretty content of blob is correct':
maybe_remove_timestamp "$pretty_content" $no_ts >expect &&
maybe_remove_timestamp "$(git cat-file -p $sha1)" $no_ts >actual &&
test_cmp expect actual
ok 60 - Pretty content of blob is correct
expecting success of 1006.61 '--batch output of blob is correct':
maybe_remove_timestamp "$batch_output" $no_ts >expect &&
maybe_remove_timestamp "$(echo $sha1 | git cat-file --batch)" $no_ts >actual &&
test_cmp expect actual
ok 61 - --batch output of blob is correct
expecting success of 1006.62 '--batch-check output of blob is correct':
echo "$sha1 $type $size" >expect &&
echo_without_newline $sha1 | git cat-file --batch-check >actual &&
test_cmp expect actual
ok 62 - --batch-check output of blob is correct
expecting success of 1006.63 '--batch-command --buffer output of blob content is correct':
maybe_remove_timestamp "$batch_output" $no_ts >expect &&
maybe_remove_timestamp "$(test_write_lines "contents $sha1" |
git cat-file --batch-command $opt)" $no_ts >actual &&
test_cmp expect actual
ok 63 - --batch-command --buffer output of blob content is correct
expecting success of 1006.64 '--batch-command --buffer output of blob info is correct':
echo "$sha1 $type $size" >expect &&
test_write_lines "info $sha1" |
git cat-file --batch-command $opt >actual &&
test_cmp expect actual
ok 64 - --batch-command --buffer output of blob info is correct
expecting success of 1006.65 '--batch-command --no-buffer output of blob content is correct':
maybe_remove_timestamp "$batch_output" $no_ts >expect &&
maybe_remove_timestamp "$(test_write_lines "contents $sha1" |
git cat-file --batch-command $opt)" $no_ts >actual &&
test_cmp expect actual
ok 65 - --batch-command --no-buffer output of blob content is correct
expecting success of 1006.66 '--batch-command --no-buffer output of blob info is correct':
echo "$sha1 $type $size" >expect &&
test_write_lines "info $sha1" |
git cat-file --batch-command $opt >actual &&
test_cmp expect actual
ok 66 - --batch-command --no-buffer output of blob info is correct
expecting success of 1006.67 'custom --batch-check format':
echo "$type $sha1" >expect &&
echo $sha1 | git cat-file --batch-check="%(objecttype) %(objectname)" >actual &&
test_cmp expect actual
ok 67 - custom --batch-check format
expecting success of 1006.68 'custom --batch-command format':
echo "$type $sha1" >expect &&
echo "info $sha1" | git cat-file --batch-command="%(objecttype) %(objectname)" >actual &&
test_cmp expect actual
ok 68 - custom --batch-command format
expecting success of 1006.69 '--batch-check with %(rest)':
echo "$type this is some extra content" >expect &&
echo "$sha1 this is some extra content" |
git cat-file --batch-check="%(objecttype) %(rest)" >actual &&
test_cmp expect actual
ok 69 - --batch-check with %(rest)
expecting success of 1006.70 '--batch without type (blob)':
{
echo "$size" &&
maybe_remove_timestamp "$content" $no_ts
} >expect &&
echo $sha1 | git cat-file --batch="%(objectsize)" >actual.full &&
maybe_remove_timestamp "$(cat actual.full)" $no_ts >actual &&
test_cmp expect actual
ok 70 - --batch without type (blob)
expecting success of 1006.71 '--batch without size (blob)':
{
echo "$type" &&
maybe_remove_timestamp "$content" $no_ts
} >expect &&
echo $sha1 | git cat-file --batch="%(objecttype)" >actual.full &&
maybe_remove_timestamp "$(cat actual.full)" $no_ts >actual &&
test_cmp expect actual
ok 71 - --batch without size (blob)
expecting success of 1006.72 '--batch-command --buffer with flush for blob info':
echo "$hello_sha1 blob $hello_size" >expect &&
test_write_lines "info $hello_sha1" "flush" |
GIT_TEST_CAT_FILE_NO_FLUSH_ON_EXIT=1 \
git cat-file --batch-command --buffer >actual &&
test_cmp expect actual
ok 72 - --batch-command --buffer with flush for blob info
expecting success of 1006.73 '--batch-command --buffer without flush for blob info':
touch output &&
test_write_lines "info $hello_sha1" |
GIT_TEST_CAT_FILE_NO_FLUSH_ON_EXIT=1 \
git cat-file --batch-command --buffer >>output &&
test_must_be_empty output
ok 73 - --batch-command --buffer without flush for blob info
expecting success of 1006.74 '--batch-check without %(rest) considers whole line':
echo "$hello_sha1 blob $hello_size" >expect &&
git update-index --add --cacheinfo 100644 $hello_sha1 "white space" &&
test_when_finished "git update-index --remove \"white space\"" &&
echo ":white space" | git cat-file --batch-check >actual &&
test_cmp expect actual
ok 74 - --batch-check without %(rest) considers whole line
expecting success of 1006.75 'tree exists':
git cat-file -e $sha1
ok 75 - tree exists
expecting success of 1006.76 'Type of tree is correct':
echo $type >expect &&
git cat-file -t $sha1 >actual &&
test_cmp expect actual
ok 76 - Type of tree is correct
expecting success of 1006.77 'Size of tree is correct':
echo $size >expect &&
git cat-file -s $sha1 >actual &&
test_cmp expect actual
ok 77 - Size of tree is correct
expecting success of 1006.78 'Type of tree is correct using --allow-unknown-type':
echo $type >expect &&
git cat-file -t --allow-unknown-type $sha1 >actual &&
test_cmp expect actual
ok 78 - Type of tree is correct using --allow-unknown-type
expecting success of 1006.79 'Size of tree is correct using --allow-unknown-type':
echo $size >expect &&
git cat-file -s --allow-unknown-type $sha1 >actual &&
test_cmp expect actual
ok 79 - Size of tree is correct using --allow-unknown-type
expecting success of 1006.80 'Pretty content of tree is correct':
maybe_remove_timestamp "$pretty_content" $no_ts >expect &&
maybe_remove_timestamp "$(git cat-file -p $sha1)" $no_ts >actual &&
test_cmp expect actual
ok 80 - Pretty content of tree is correct
expecting success of 1006.81 '--batch-check output of tree is correct':
echo "$sha1 $type $size" >expect &&
echo_without_newline $sha1 | git cat-file --batch-check >actual &&
test_cmp expect actual
ok 81 - --batch-check output of tree is correct
expecting success of 1006.82 '--batch-command --buffer output of tree info is correct':
echo "$sha1 $type $size" >expect &&
test_write_lines "info $sha1" |
git cat-file --batch-command $opt >actual &&
test_cmp expect actual
ok 82 - --batch-command --buffer output of tree info is correct
expecting success of 1006.83 '--batch-command --no-buffer output of tree info is correct':
echo "$sha1 $type $size" >expect &&
test_write_lines "info $sha1" |
git cat-file --batch-command $opt >actual &&
test_cmp expect actual
ok 83 - --batch-command --no-buffer output of tree info is correct
expecting success of 1006.84 'custom --batch-check format':
echo "$type $sha1" >expect &&
echo $sha1 | git cat-file --batch-check="%(objecttype) %(objectname)" >actual &&
test_cmp expect actual
ok 84 - custom --batch-check format
expecting success of 1006.85 'custom --batch-command format':
echo "$type $sha1" >expect &&
echo "info $sha1" | git cat-file --batch-command="%(objecttype) %(objectname)" >actual &&
test_cmp expect actual
ok 85 - custom --batch-command format
expecting success of 1006.86 '--batch-check with %(rest)':
echo "$type this is some extra content" >expect &&
echo "$sha1 this is some extra content" |
git cat-file --batch-check="%(objecttype) %(rest)" >actual &&
test_cmp expect actual
ok 86 - --batch-check with %(rest)
expecting success of 1006.87 'commit exists':
git cat-file -e $sha1
ok 87 - commit exists
expecting success of 1006.88 'Type of commit is correct':
echo $type >expect &&
git cat-file -t $sha1 >actual &&
test_cmp expect actual
ok 88 - Type of commit is correct
expecting success of 1006.89 'Size of commit is correct':
echo $size >expect &&
git cat-file -s $sha1 >actual &&
test_cmp expect actual
ok 89 - Size of commit is correct
expecting success of 1006.90 'Type of commit is correct using --allow-unknown-type':
echo $type >expect &&
git cat-file -t --allow-unknown-type $sha1 >actual &&
test_cmp expect actual
ok 90 - Type of commit is correct using --allow-unknown-type
expecting success of 1006.91 'Size of commit is correct using --allow-unknown-type':
echo $size >expect &&
git cat-file -s --allow-unknown-type $sha1 >actual &&
test_cmp expect actual
ok 91 - Size of commit is correct using --allow-unknown-type
expecting success of 1006.92 'Content of commit is correct':
maybe_remove_timestamp "$content" $no_ts >expect &&
maybe_remove_timestamp "$(git cat-file $type $sha1)" $no_ts >actual &&
test_cmp expect actual
ok 92 - Content of commit is correct
expecting success of 1006.93 'Pretty content of commit is correct':
maybe_remove_timestamp "$pretty_content" $no_ts >expect &&
maybe_remove_timestamp "$(git cat-file -p $sha1)" $no_ts >actual &&
test_cmp expect actual
ok 93 - Pretty content of commit is correct
expecting success of 1006.94 '--batch output of commit is correct':
maybe_remove_timestamp "$batch_output" $no_ts >expect &&
maybe_remove_timestamp "$(echo $sha1 | git cat-file --batch)" $no_ts >actual &&
test_cmp expect actual
ok 94 - --batch output of commit is correct
expecting success of 1006.95 '--batch-check output of commit is correct':
echo "$sha1 $type $size" >expect &&
echo_without_newline $sha1 | git cat-file --batch-check >actual &&
test_cmp expect actual
ok 95 - --batch-check output of commit is correct
expecting success of 1006.96 '--batch-command --buffer output of commit content is correct':
maybe_remove_timestamp "$batch_output" $no_ts >expect &&
maybe_remove_timestamp "$(test_write_lines "contents $sha1" |
git cat-file --batch-command $opt)" $no_ts >actual &&
test_cmp expect actual
ok 96 - --batch-command --buffer output of commit content is correct
expecting success of 1006.97 '--batch-command --buffer output of commit info is correct':
echo "$sha1 $type $size" >expect &&
test_write_lines "info $sha1" |
git cat-file --batch-command $opt >actual &&
test_cmp expect actual
ok 97 - --batch-command --buffer output of commit info is correct
expecting success of 1006.98 '--batch-command --no-buffer output of commit content is correct':
maybe_remove_timestamp "$batch_output" $no_ts >expect &&
maybe_remove_timestamp "$(test_write_lines "contents $sha1" |
git cat-file --batch-command $opt)" $no_ts >actual &&
test_cmp expect actual
ok 98 - --batch-command --no-buffer output of commit content is correct
expecting success of 1006.99 '--batch-command --no-buffer output of commit info is correct':
echo "$sha1 $type $size" >expect &&
test_write_lines "info $sha1" |
git cat-file --batch-command $opt >actual &&
test_cmp expect actual
ok 99 - --batch-command --no-buffer output of commit info is correct
expecting success of 1006.100 'custom --batch-check format':
echo "$type $sha1" >expect &&
echo $sha1 | git cat-file --batch-check="%(objecttype) %(objectname)" >actual &&
test_cmp expect actual
ok 100 - custom --batch-check format
expecting success of 1006.101 'custom --batch-command format':
echo "$type $sha1" >expect &&
echo "info $sha1" | git cat-file --batch-command="%(objecttype) %(objectname)" >actual &&
test_cmp expect actual
ok 101 - custom --batch-command format
expecting success of 1006.102 '--batch-check with %(rest)':
echo "$type this is some extra content" >expect &&
echo "$sha1 this is some extra content" |
git cat-file --batch-check="%(objecttype) %(rest)" >actual &&
test_cmp expect actual
ok 102 - --batch-check with %(rest)
expecting success of 1006.103 '--batch without type (commit)':
{
echo "$size" &&
maybe_remove_timestamp "$content" $no_ts
} >expect &&
echo $sha1 | git cat-file --batch="%(objectsize)" >actual.full &&
maybe_remove_timestamp "$(cat actual.full)" $no_ts >actual &&
test_cmp expect actual
ok 103 - --batch without type (commit)
expecting success of 1006.104 '--batch without size (commit)':
{
echo "$type" &&
maybe_remove_timestamp "$content" $no_ts
} >expect &&
echo $sha1 | git cat-file --batch="%(objecttype)" >actual.full &&
maybe_remove_timestamp "$(cat actual.full)" $no_ts >actual &&
test_cmp expect actual
ok 104 - --batch without size (commit)
expecting success of 1006.105 'tag exists':
git cat-file -e $sha1
ok 105 - tag exists
expecting success of 1006.106 'Type of tag is correct':
echo $type >expect &&
git cat-file -t $sha1 >actual &&
test_cmp expect actual
ok 106 - Type of tag is correct
expecting success of 1006.107 'Size of tag is correct':
echo $size >expect &&
git cat-file -s $sha1 >actual &&
test_cmp expect actual
ok 107 - Size of tag is correct
expecting success of 1006.108 'Type of tag is correct using --allow-unknown-type':
echo $type >expect &&
git cat-file -t --allow-unknown-type $sha1 >actual &&
test_cmp expect actual
ok 108 - Type of tag is correct using --allow-unknown-type
expecting success of 1006.109 'Size of tag is correct using --allow-unknown-type':
echo $size >expect &&
git cat-file -s --allow-unknown-type $sha1 >actual &&
test_cmp expect actual
ok 109 - Size of tag is correct using --allow-unknown-type
expecting success of 1006.110 'Content of tag is correct':
maybe_remove_timestamp "$content" $no_ts >expect &&
maybe_remove_timestamp "$(git cat-file $type $sha1)" $no_ts >actual &&
test_cmp expect actual
ok 110 - Content of tag is correct
expecting success of 1006.111 'Pretty content of tag is correct':
maybe_remove_timestamp "$pretty_content" $no_ts >expect &&
maybe_remove_timestamp "$(git cat-file -p $sha1)" $no_ts >actual &&
test_cmp expect actual
ok 111 - Pretty content of tag is correct
expecting success of 1006.112 '--batch output of tag is correct':
maybe_remove_timestamp "$batch_output" $no_ts >expect &&
maybe_remove_timestamp "$(echo $sha1 | git cat-file --batch)" $no_ts >actual &&
test_cmp expect actual
ok 112 - --batch output of tag is correct
expecting success of 1006.113 '--batch-check output of tag is correct':
echo "$sha1 $type $size" >expect &&
echo_without_newline $sha1 | git cat-file --batch-check >actual &&
test_cmp expect actual
ok 113 - --batch-check output of tag is correct
expecting success of 1006.114 '--batch-command --buffer output of tag content is correct':
maybe_remove_timestamp "$batch_output" $no_ts >expect &&
maybe_remove_timestamp "$(test_write_lines "contents $sha1" |
git cat-file --batch-command $opt)" $no_ts >actual &&
test_cmp expect actual
ok 114 - --batch-command --buffer output of tag content is correct
expecting success of 1006.115 '--batch-command --buffer output of tag info is correct':
echo "$sha1 $type $size" >expect &&
test_write_lines "info $sha1" |
git cat-file --batch-command $opt >actual &&
test_cmp expect actual
ok 115 - --batch-command --buffer output of tag info is correct
expecting success of 1006.116 '--batch-command --no-buffer output of tag content is correct':
maybe_remove_timestamp "$batch_output" $no_ts >expect &&
maybe_remove_timestamp "$(test_write_lines "contents $sha1" |
git cat-file --batch-command $opt)" $no_ts >actual &&
test_cmp expect actual
ok 116 - --batch-command --no-buffer output of tag content is correct
expecting success of 1006.117 '--batch-command --no-buffer output of tag info is correct':
echo "$sha1 $type $size" >expect &&
test_write_lines "info $sha1" |
git cat-file --batch-command $opt >actual &&
test_cmp expect actual
ok 117 - --batch-command --no-buffer output of tag info is correct
expecting success of 1006.118 'custom --batch-check format':
echo "$type $sha1" >expect &&
echo $sha1 | git cat-file --batch-check="%(objecttype) %(objectname)" >actual &&
test_cmp expect actual
ok 118 - custom --batch-check format
expecting success of 1006.119 'custom --batch-command format':
echo "$type $sha1" >expect &&
echo "info $sha1" | git cat-file --batch-command="%(objecttype) %(objectname)" >actual &&
test_cmp expect actual
ok 119 - custom --batch-command format
expecting success of 1006.120 '--batch-check with %(rest)':
echo "$type this is some extra content" >expect &&
echo "$sha1 this is some extra content" |
git cat-file --batch-check="%(objecttype) %(rest)" >actual &&
test_cmp expect actual
ok 120 - --batch-check with %(rest)
expecting success of 1006.121 '--batch without type (tag)':
{
echo "$size" &&
maybe_remove_timestamp "$content" $no_ts
} >expect &&
echo $sha1 | git cat-file --batch="%(objectsize)" >actual.full &&
maybe_remove_timestamp "$(cat actual.full)" $no_ts >actual &&
test_cmp expect actual
ok 121 - --batch without type (tag)
expecting success of 1006.122 '--batch without size (tag)':
{
echo "$type" &&
maybe_remove_timestamp "$content" $no_ts
} >expect &&
echo $sha1 | git cat-file --batch="%(objecttype)" >actual.full &&
maybe_remove_timestamp "$(cat actual.full)" $no_ts >actual &&
test_cmp expect actual
ok 122 - --batch without size (tag)
expecting success of 1006.123 'Reach a blob from a tag pointing to it': test 'Hello World' = "$(git cat-file blob df5e478333aff3828db5057770e4dd34b146d404)"
ok 123 - Reach a blob from a tag pointing to it
expecting success of 1006.124 'Passing -t with --batch fails':
test_must_fail git cat-file --$batch -$opt $hello_sha1
fatal: '-t' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 124 - Passing -t with --batch fails
expecting success of 1006.125 'Passing --batch with -t fails':
test_must_fail git cat-file -$opt --$batch $hello_sha1
fatal: '-t' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 125 - Passing --batch with -t fails
expecting success of 1006.126 'Passing -s with --batch fails':
test_must_fail git cat-file --$batch -$opt $hello_sha1
fatal: '-s' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 126 - Passing -s with --batch fails
expecting success of 1006.127 'Passing --batch with -s fails':
test_must_fail git cat-file -$opt --$batch $hello_sha1
fatal: '-s' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 127 - Passing --batch with -s fails
expecting success of 1006.128 'Passing -e with --batch fails':
test_must_fail git cat-file --$batch -$opt $hello_sha1
fatal: '-e' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 128 - Passing -e with --batch fails
expecting success of 1006.129 'Passing --batch with -e fails':
test_must_fail git cat-file -$opt --$batch $hello_sha1
fatal: '-e' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 129 - Passing --batch with -e fails
expecting success of 1006.130 'Passing -p with --batch fails':
test_must_fail git cat-file --$batch -$opt $hello_sha1
fatal: '-p' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 130 - Passing -p with --batch fails
expecting success of 1006.131 'Passing --batch with -p fails':
test_must_fail git cat-file -$opt --$batch $hello_sha1
fatal: '-p' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 131 - Passing --batch with -p fails
expecting success of 1006.132 'Passing <type> with --batch fails':
test_must_fail git cat-file --$batch blob $hello_sha1
fatal: batch modes take no arguments
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 132 - Passing <type> with --batch fails
expecting success of 1006.133 'Passing --batch with <type> fails':
test_must_fail git cat-file blob --$batch $hello_sha1
fatal: batch modes take no arguments
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 133 - Passing --batch with <type> fails
expecting success of 1006.134 'Passing sha1 with --batch fails':
test_must_fail git cat-file --$batch $hello_sha1
fatal: batch modes take no arguments
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 134 - Passing sha1 with --batch fails
expecting success of 1006.135 'Passing -t with --batch-check fails':
test_must_fail git cat-file --$batch -$opt $hello_sha1
fatal: '-t' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 135 - Passing -t with --batch-check fails
expecting success of 1006.136 'Passing --batch-check with -t fails':
test_must_fail git cat-file -$opt --$batch $hello_sha1
fatal: '-t' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 136 - Passing --batch-check with -t fails
expecting success of 1006.137 'Passing -s with --batch-check fails':
test_must_fail git cat-file --$batch -$opt $hello_sha1
fatal: '-s' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 137 - Passing -s with --batch-check fails
expecting success of 1006.138 'Passing --batch-check with -s fails':
test_must_fail git cat-file -$opt --$batch $hello_sha1
fatal: '-s' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 138 - Passing --batch-check with -s fails
expecting success of 1006.139 'Passing -e with --batch-check fails':
test_must_fail git cat-file --$batch -$opt $hello_sha1
fatal: '-e' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 139 - Passing -e with --batch-check fails
expecting success of 1006.140 'Passing --batch-check with -e fails':
test_must_fail git cat-file -$opt --$batch $hello_sha1
fatal: '-e' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 140 - Passing --batch-check with -e fails
expecting success of 1006.141 'Passing -p with --batch-check fails':
test_must_fail git cat-file --$batch -$opt $hello_sha1
fatal: '-p' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 141 - Passing -p with --batch-check fails
expecting success of 1006.142 'Passing --batch-check with -p fails':
test_must_fail git cat-file -$opt --$batch $hello_sha1
fatal: '-p' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 142 - Passing --batch-check with -p fails
expecting success of 1006.143 'Passing <type> with --batch-check fails':
test_must_fail git cat-file --$batch blob $hello_sha1
fatal: batch modes take no arguments
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 143 - Passing <type> with --batch-check fails
expecting success of 1006.144 'Passing --batch-check with <type> fails':
test_must_fail git cat-file blob --$batch $hello_sha1
fatal: batch modes take no arguments
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 144 - Passing --batch-check with <type> fails
expecting success of 1006.145 'Passing sha1 with --batch-check fails':
test_must_fail git cat-file --$batch $hello_sha1
fatal: batch modes take no arguments
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 145 - Passing sha1 with --batch-check fails
expecting success of 1006.146 'Passing -t with --batch-command fails':
test_must_fail git cat-file --$batch -$opt $hello_sha1
fatal: '-t' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 146 - Passing -t with --batch-command fails
expecting success of 1006.147 'Passing --batch-command with -t fails':
test_must_fail git cat-file -$opt --$batch $hello_sha1
fatal: '-t' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 147 - Passing --batch-command with -t fails
expecting success of 1006.148 'Passing -s with --batch-command fails':
test_must_fail git cat-file --$batch -$opt $hello_sha1
fatal: '-s' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 148 - Passing -s with --batch-command fails
expecting success of 1006.149 'Passing --batch-command with -s fails':
test_must_fail git cat-file -$opt --$batch $hello_sha1
fatal: '-s' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 149 - Passing --batch-command with -s fails
expecting success of 1006.150 'Passing -e with --batch-command fails':
test_must_fail git cat-file --$batch -$opt $hello_sha1
fatal: '-e' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 150 - Passing -e with --batch-command fails
expecting success of 1006.151 'Passing --batch-command with -e fails':
test_must_fail git cat-file -$opt --$batch $hello_sha1
fatal: '-e' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 151 - Passing --batch-command with -e fails
expecting success of 1006.152 'Passing -p with --batch-command fails':
test_must_fail git cat-file --$batch -$opt $hello_sha1
fatal: '-p' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 152 - Passing -p with --batch-command fails
expecting success of 1006.153 'Passing --batch-command with -p fails':
test_must_fail git cat-file -$opt --$batch $hello_sha1
fatal: '-p' is incompatible with batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 153 - Passing --batch-command with -p fails
expecting success of 1006.154 'Passing <type> with --batch-command fails':
test_must_fail git cat-file --$batch blob $hello_sha1
fatal: batch modes take no arguments
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 154 - Passing <type> with --batch-command fails
expecting success of 1006.155 'Passing --batch-command with <type> fails':
test_must_fail git cat-file blob --$batch $hello_sha1
fatal: batch modes take no arguments
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 155 - Passing --batch-command with <type> fails
expecting success of 1006.156 'Passing sha1 with --batch-command fails':
test_must_fail git cat-file --$batch $hello_sha1
fatal: batch modes take no arguments
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 156 - Passing sha1 with --batch-command fails
expecting success of 1006.157 'Passing -t with --follow-symlinks fails':
test_must_fail git cat-file --follow-symlinks -$opt $hello_sha1
fatal: '--follow-symlinks' requires a batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 157 - Passing -t with --follow-symlinks fails
expecting success of 1006.158 'Passing -s with --follow-symlinks fails':
test_must_fail git cat-file --follow-symlinks -$opt $hello_sha1
fatal: '--follow-symlinks' requires a batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 158 - Passing -s with --follow-symlinks fails
expecting success of 1006.159 'Passing -e with --follow-symlinks fails':
test_must_fail git cat-file --follow-symlinks -$opt $hello_sha1
fatal: '--follow-symlinks' requires a batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 159 - Passing -e with --follow-symlinks fails
expecting success of 1006.160 'Passing -p with --follow-symlinks fails':
test_must_fail git cat-file --follow-symlinks -$opt $hello_sha1
fatal: '--follow-symlinks' requires a batch mode
usage: git cat-file <type> <object>
or: git cat-file (-e | -p) <object>
or: git cat-file (-t | -s) [--allow-unknown-type] <object>
or: git cat-file (--batch | --batch-check | --batch-command) [--batch-all-objects]
[--buffer] [--follow-symlinks] [--unordered]
[--textconv | --filters] [-z]
or: git cat-file (--textconv | --filters)
[<rev>:<path|tree-ish> | --path=<path|tree-ish> <rev>]
Check object existence or emit object contents
-e check if <object> exists
-p pretty-print <object> content
Emit [broken] object attributes
-t show object type (one of 'blob', 'tree', 'commit', 'tag', ...)
-s show object size
--allow-unknown-type allow -s and -t to work with broken/corrupt objects
--use-mailmap use mail map file
--mailmap ... alias of --use-mailmap
Batch objects requested on stdin (or --batch-all-objects)
--batch[=<format>] show full <object> or <rev> contents
--batch-check[=<format>]
like --batch, but don't emit <contents>
-z stdin is NUL-terminated
--batch-command[=<format>]
read commands from stdin
--batch-all-objects with --batch[-check]: ignores stdin, batches all known objects
Change or optimize batch output
--buffer buffer --batch output
--follow-symlinks follow in-tree symlinks
--unordered do not order objects before emitting them
Emit object (blob or tree) with conversion or filter (stand-alone, or with batch)
--textconv run textconv on object's content
--filters run filters on object's content
--path blob|tree use a <path> for (--textconv | --filters); Not with 'batch'
ok 160 - Passing -p with --follow-symlinks fails
expecting success of 1006.161 '--batch-check for a non-existent named object':
test "foobar42 missing
foobar84 missing" = \
"$( ( echo foobar42 && echo_without_newline foobar84 ) | git cat-file --batch-check)"
ok 161 - --batch-check for a non-existent named object
expecting success of 1006.162 '--batch-check for a non-existent hash':
test "0000000000000000000000000000000000000042 missing
0000000000000000000000000000000000000084 missing" = \
"$( ( echo 0000000000000000000000000000000000000042 &&
echo_without_newline 0000000000000000000000000000000000000084 ) |
git cat-file --batch-check)"
ok 162 - --batch-check for a non-existent hash
expecting success of 1006.163 '--batch for an existent and a non-existent hash':
test "$tag_sha1 tag $tag_size
$tag_content
0000000000000000000000000000000000000000 missing" = \
"$( ( echo $tag_sha1 &&
echo_without_newline 0000000000000000000000000000000000000000 ) |
git cat-file --batch)"
ok 163 - --batch for an existent and a non-existent hash
expecting success of 1006.164 '--batch-check for an empty line':
test " missing" = "$(echo | git cat-file --batch-check)"
ok 164 - --batch-check for an empty line
expecting success of 1006.165 'empty --batch-check notices missing object':
echo "$ZERO_OID missing" >expect &&
echo "$ZERO_OID" | git cat-file --batch-check="" >actual &&
test_cmp expect actual
ok 165 - empty --batch-check notices missing object
expecting success of 1006.166 '--batch with multiple sha1s gives correct format':
test "$(maybe_remove_timestamp "$batch_output" 1)" = "$(maybe_remove_timestamp "$(echo_without_newline "$batch_input" | git cat-file --batch)" 1)"
ok 166 - --batch with multiple sha1s gives correct format
expecting success of 1006.167 '--batch, -z with multiple sha1s gives correct format':
echo_without_newline_nul "$batch_input" >in &&
test "$(maybe_remove_timestamp "$batch_output" 1)" = \
"$(maybe_remove_timestamp "$(git cat-file --batch -z <in)" 1)"
ok 167 - --batch, -z with multiple sha1s gives correct format
expecting success of 1006.168 '--batch-check with multiple sha1s gives correct format':
test "$batch_check_output" = \
"$(echo_without_newline "$batch_check_input" | git cat-file --batch-check)"
ok 168 - --batch-check with multiple sha1s gives correct format
expecting success of 1006.169 '--batch-check, -z with multiple sha1s gives correct format':
echo_without_newline_nul "$batch_check_input" >in &&
test "$batch_check_output" = "$(git cat-file --batch-check -z <in)"
ok 169 - --batch-check, -z with multiple sha1s gives correct format
checking prerequisite: FUNNYNAMES
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-FUNNYNAMES" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-FUNNYNAMES" &&
test_have_prereq !MINGW &&
touch -- \
"FUNNYNAMES tab embedded" \
"FUNNYNAMES \"quote embedded\"" \
"FUNNYNAMES newline
embedded" 2>/dev/null &&
rm -- \
"FUNNYNAMES tab embedded" \
"FUNNYNAMES \"quote embedded\"" \
"FUNNYNAMES newline
embedded" 2>/dev/null
)
prerequisite FUNNYNAMES ok
expecting success of 1006.170 '--batch-check, -z with newline in input':
touch -- "newline${LF}embedded" &&
git add -- "newline${LF}embedded" &&
git commit -m "file with newline embedded" &&
test_tick &&
printf "HEAD:newline${LF}embedded" >in &&
git cat-file --batch-check -z <in >actual &&
echo "$(git rev-parse "HEAD:newline${LF}embedded") blob 0" >expect &&
test_cmp expect actual
[master (root-commit) a7561ce] file with newline embedded
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+)
create mode 100644 hello
create mode 100644 "newline\nembedded"
ok 170 - --batch-check, -z with newline in input
expecting success of 1006.171 '--batch-command with multiple info calls gives correct format':
cat >expect <<-EOF &&
$hello_sha1 blob $hello_size
$tree_sha1 tree $tree_size
$commit_sha1 commit $commit_size
$tag_sha1 tag $tag_size
deadbeef missing
EOF
echo "$batch_command_multiple_info" >in &&
git cat-file --batch-command --buffer <in >actual &&
test_cmp expect actual &&
echo "$batch_command_multiple_info" | tr "\n" "\0" >in &&
git cat-file --batch-command --buffer -z <in >actual &&
test_cmp expect actual
ok 171 - --batch-command with multiple info calls gives correct format
expecting success of 1006.172 '--batch-command with multiple command calls gives correct format':
remove_timestamp >expect <<-EOF &&
$hello_sha1 blob $hello_size
$hello_content
$commit_sha1 commit $commit_size
$commit_content
$tag_sha1 tag $tag_size
$tag_content
deadbeef missing
EOF
echo "$batch_command_multiple_contents" >in &&
git cat-file --batch-command --buffer <in >actual_raw &&
remove_timestamp <actual_raw >actual &&
test_cmp expect actual &&
echo "$batch_command_multiple_contents" | tr "\n" "\0" >in &&
git cat-file --batch-command --buffer -z <in >actual_raw &&
remove_timestamp <actual_raw >actual &&
test_cmp expect actual
ok 172 - --batch-command with multiple command calls gives correct format
expecting success of 1006.173 'setup blobs which are likely to delta':
test-tool genrandom foo 10240 >foo &&
{ cat foo && echo plus; } >foo-plus &&
git add foo foo-plus &&
git commit -m foo &&
cat >blobs <<-\EOF
HEAD:foo
HEAD:foo-plus
EOF
[master 149611e] foo
Author: A U Thor <author@example.com>
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 foo
create mode 100644 foo-plus
ok 173 - setup blobs which are likely to delta
expecting success of 1006.174 'confirm that neither loose blob is a delta':
cat >expect <<-EOF &&
$ZERO_OID
$ZERO_OID
EOF
git cat-file --batch-check="%(deltabase)" <blobs >actual &&
test_cmp expect actual
ok 174 - confirm that neither loose blob is a delta
expecting success of 1006.175 '%(deltabase) reports packed delta bases':
git repack -ad &&
git cat-file --batch-check="%(deltabase)" <blobs >actual &&
{
grep "$(git rev-parse HEAD:foo)" actual ||
grep "$(git rev-parse HEAD:foo-plus)" actual
}
9b546ef00c80e00a1733cb882d607028fcd562fc
ok 175 - %(deltabase) reports packed delta bases
expecting success of 1006.176 'setup bogus data':
bogus_short_type="bogus" &&
bogus_short_content="bogus" &&
bogus_short_size=$(strlen "$bogus_short_content") &&
bogus_short_sha1=$(echo_without_newline "$bogus_short_content" | git hash-object -t $bogus_short_type --literally -w --stdin) &&
bogus_long_type="abcdefghijklmnopqrstuvwxyz1234679" &&
bogus_long_content="bogus" &&
bogus_long_size=$(strlen "$bogus_long_content") &&
bogus_long_sha1=$(echo_without_newline "$bogus_long_content" | git hash-object -t $bogus_long_type --literally -w --stdin)
ok 176 - setup bogus data
expecting success of 1006.177 'cat-file -s error on bogus short OID':
cat >expect <<-\EOF &&
fatal: invalid object type
EOF
if test "$arg1" = "--allow-unknown-type"
then
git cat-file $arg1 $arg2 $bogus_short_sha1
else
test_must_fail git cat-file $arg1 $arg2 $bogus_short_sha1 >out 2>actual &&
test_must_be_empty out &&
test_cmp expect actual
fi
ok 177 - cat-file -s error on bogus short OID
expecting success of 1006.178 'cat-file -s error on bogus full OID':
if test "$arg2" = "-p"
then
cat >expect <<-EOF
error: header for $bogus_long_sha1 too long, exceeds 32 bytes
fatal: Not a valid object name $bogus_long_sha1
EOF
else
cat >expect <<-EOF
error: header for $bogus_long_sha1 too long, exceeds 32 bytes
fatal: git cat-file: could not get object info
EOF
fi &&
if test "$arg1" = "--allow-unknown-type"
then
git cat-file $arg1 $arg2 $bogus_short_sha1
else
test_must_fail git cat-file $arg1 $arg2 $bogus_long_sha1 >out 2>actual &&
test_must_be_empty out &&
test_cmp expect actual
fi
ok 178 - cat-file -s error on bogus full OID
expecting success of 1006.179 'cat-file -s error on missing short OID':
cat >expect.err <<-EOF &&
fatal: Not a valid object name $(test_oid deadbeef_short)
EOF
test_must_fail git cat-file $arg1 $arg2 $(test_oid deadbeef_short) >out 2>err.actual &&
test_must_be_empty out
ok 179 - cat-file -s error on missing short OID
expecting success of 1006.180 'cat-file -s error on missing full OID':
if test "$arg2" = "-p"
then
cat >expect.err <<-EOF
fatal: Not a valid object name $(test_oid deadbeef)
EOF
else
cat >expect.err <<-\EOF
fatal: git cat-file: could not get object info
EOF
fi &&
test_must_fail git cat-file $arg1 $arg2 $(test_oid deadbeef) >out 2>err.actual &&
test_must_be_empty out &&
test_cmp expect.err err.actual
ok 180 - cat-file -s error on missing full OID
expecting success of 1006.181 'cat-file -t error on bogus short OID':
cat >expect <<-\EOF &&
fatal: invalid object type
EOF
if test "$arg1" = "--allow-unknown-type"
then
git cat-file $arg1 $arg2 $bogus_short_sha1
else
test_must_fail git cat-file $arg1 $arg2 $bogus_short_sha1 >out 2>actual &&
test_must_be_empty out &&
test_cmp expect actual
fi
ok 181 - cat-file -t error on bogus short OID
expecting success of 1006.182 'cat-file -t error on bogus full OID':
if test "$arg2" = "-p"
then
cat >expect <<-EOF
error: header for $bogus_long_sha1 too long, exceeds 32 bytes
fatal: Not a valid object name $bogus_long_sha1
EOF
else
cat >expect <<-EOF
error: header for $bogus_long_sha1 too long, exceeds 32 bytes
fatal: git cat-file: could not get object info
EOF
fi &&
if test "$arg1" = "--allow-unknown-type"
then
git cat-file $arg1 $arg2 $bogus_short_sha1
else
test_must_fail git cat-file $arg1 $arg2 $bogus_long_sha1 >out 2>actual &&
test_must_be_empty out &&
test_cmp expect actual
fi
ok 182 - cat-file -t error on bogus full OID
expecting success of 1006.183 'cat-file -t error on missing short OID':
cat >expect.err <<-EOF &&
fatal: Not a valid object name $(test_oid deadbeef_short)
EOF
test_must_fail git cat-file $arg1 $arg2 $(test_oid deadbeef_short) >out 2>err.actual &&
test_must_be_empty out
ok 183 - cat-file -t error on missing short OID
expecting success of 1006.184 'cat-file -t error on missing full OID':
if test "$arg2" = "-p"
then
cat >expect.err <<-EOF
fatal: Not a valid object name $(test_oid deadbeef)
EOF
else
cat >expect.err <<-\EOF
fatal: git cat-file: could not get object info
EOF
fi &&
test_must_fail git cat-file $arg1 $arg2 $(test_oid deadbeef) >out 2>err.actual &&
test_must_be_empty out &&
test_cmp expect.err err.actual
ok 184 - cat-file -t error on missing full OID
expecting success of 1006.185 'cat-file -p error on bogus short OID':
cat >expect <<-\EOF &&
fatal: invalid object type
EOF
if test "$arg1" = "--allow-unknown-type"
then
git cat-file $arg1 $arg2 $bogus_short_sha1
else
test_must_fail git cat-file $arg1 $arg2 $bogus_short_sha1 >out 2>actual &&
test_must_be_empty out &&
test_cmp expect actual
fi
ok 185 - cat-file -p error on bogus short OID
expecting success of 1006.186 'cat-file -p error on bogus full OID':
if test "$arg2" = "-p"
then
cat >expect <<-EOF
error: header for $bogus_long_sha1 too long, exceeds 32 bytes
fatal: Not a valid object name $bogus_long_sha1
EOF
else
cat >expect <<-EOF
error: header for $bogus_long_sha1 too long, exceeds 32 bytes
fatal: git cat-file: could not get object info
EOF
fi &&
if test "$arg1" = "--allow-unknown-type"
then
git cat-file $arg1 $arg2 $bogus_short_sha1
else
test_must_fail git cat-file $arg1 $arg2 $bogus_long_sha1 >out 2>actual &&
test_must_be_empty out &&
test_cmp expect actual
fi
ok 186 - cat-file -p error on bogus full OID
expecting success of 1006.187 'cat-file -p error on missing short OID':
cat >expect.err <<-EOF &&
fatal: Not a valid object name $(test_oid deadbeef_short)
EOF
test_must_fail git cat-file $arg1 $arg2 $(test_oid deadbeef_short) >out 2>err.actual &&
test_must_be_empty out
ok 187 - cat-file -p error on missing short OID
expecting success of 1006.188 'cat-file -p error on missing full OID':
if test "$arg2" = "-p"
then
cat >expect.err <<-EOF
fatal: Not a valid object name $(test_oid deadbeef)
EOF
else
cat >expect.err <<-\EOF
fatal: git cat-file: could not get object info
EOF
fi &&
test_must_fail git cat-file $arg1 $arg2 $(test_oid deadbeef) >out 2>err.actual &&
test_must_be_empty out &&
test_cmp expect.err err.actual
ok 188 - cat-file -p error on missing full OID
expecting success of 1006.189 'cat-file --allow-unknown-type -s error on bogus short OID':
cat >expect <<-\EOF &&
fatal: invalid object type
EOF
if test "$arg1" = "--allow-unknown-type"
then
git cat-file $arg1 $arg2 $bogus_short_sha1
else
test_must_fail git cat-file $arg1 $arg2 $bogus_short_sha1 >out 2>actual &&
test_must_be_empty out &&
test_cmp expect actual
fi
5
ok 189 - cat-file --allow-unknown-type -s error on bogus short OID
expecting success of 1006.190 'cat-file --allow-unknown-type -s error on bogus full OID':
if test "$arg2" = "-p"
then
cat >expect <<-EOF
error: header for $bogus_long_sha1 too long, exceeds 32 bytes
fatal: Not a valid object name $bogus_long_sha1
EOF
else
cat >expect <<-EOF
error: header for $bogus_long_sha1 too long, exceeds 32 bytes
fatal: git cat-file: could not get object info
EOF
fi &&
if test "$arg1" = "--allow-unknown-type"
then
git cat-file $arg1 $arg2 $bogus_short_sha1
else
test_must_fail git cat-file $arg1 $arg2 $bogus_long_sha1 >out 2>actual &&
test_must_be_empty out &&
test_cmp expect actual
fi
5
ok 190 - cat-file --allow-unknown-type -s error on bogus full OID
expecting success of 1006.191 'cat-file --allow-unknown-type -s error on missing short OID':
cat >expect.err <<-EOF &&
fatal: Not a valid object name $(test_oid deadbeef_short)
EOF
test_must_fail git cat-file $arg1 $arg2 $(test_oid deadbeef_short) >out 2>err.actual &&
test_must_be_empty out
ok 191 - cat-file --allow-unknown-type -s error on missing short OID
expecting success of 1006.192 'cat-file --allow-unknown-type -s error on missing full OID':
if test "$arg2" = "-p"
then
cat >expect.err <<-EOF
fatal: Not a valid object name $(test_oid deadbeef)
EOF
else
cat >expect.err <<-\EOF
fatal: git cat-file: could not get object info
EOF
fi &&
test_must_fail git cat-file $arg1 $arg2 $(test_oid deadbeef) >out 2>err.actual &&
test_must_be_empty out &&
test_cmp expect.err err.actual
ok 192 - cat-file --allow-unknown-type -s error on missing full OID
expecting success of 1006.193 'cat-file --allow-unknown-type -t error on bogus short OID':
cat >expect <<-\EOF &&
fatal: invalid object type
EOF
if test "$arg1" = "--allow-unknown-type"
then
git cat-file $arg1 $arg2 $bogus_short_sha1
else
test_must_fail git cat-file $arg1 $arg2 $bogus_short_sha1 >out 2>actual &&
test_must_be_empty out &&
test_cmp expect actual
fi
bogus
ok 193 - cat-file --allow-unknown-type -t error on bogus short OID
expecting success of 1006.194 'cat-file --allow-unknown-type -t error on bogus full OID':
if test "$arg2" = "-p"
then
cat >expect <<-EOF
error: header for $bogus_long_sha1 too long, exceeds 32 bytes
fatal: Not a valid object name $bogus_long_sha1
EOF
else
cat >expect <<-EOF
error: header for $bogus_long_sha1 too long, exceeds 32 bytes
fatal: git cat-file: could not get object info
EOF
fi &&
if test "$arg1" = "--allow-unknown-type"
then
git cat-file $arg1 $arg2 $bogus_short_sha1
else
test_must_fail git cat-file $arg1 $arg2 $bogus_long_sha1 >out 2>actual &&
test_must_be_empty out &&
test_cmp expect actual
fi
bogus
ok 194 - cat-file --allow-unknown-type -t error on bogus full OID
expecting success of 1006.195 'cat-file --allow-unknown-type -t error on missing short OID':
cat >expect.err <<-EOF &&
fatal: Not a valid object name $(test_oid deadbeef_short)
EOF
test_must_fail git cat-file $arg1 $arg2 $(test_oid deadbeef_short) >out 2>err.actual &&
test_must_be_empty out
ok 195 - cat-file --allow-unknown-type -t error on missing short OID
expecting success of 1006.196 'cat-file --allow-unknown-type -t error on missing full OID':
if test "$arg2" = "-p"
then
cat >expect.err <<-EOF
fatal: Not a valid object name $(test_oid deadbeef)
EOF
else
cat >expect.err <<-\EOF
fatal: git cat-file: could not get object info
EOF
fi &&
test_must_fail git cat-file $arg1 $arg2 $(test_oid deadbeef) >out 2>err.actual &&
test_must_be_empty out &&
test_cmp expect.err err.actual
ok 196 - cat-file --allow-unknown-type -t error on missing full OID
expecting success of 1006.197 '-e is OK with a broken object without --allow-unknown-type':
git cat-file -e $bogus_short_sha1
ok 197 - -e is OK with a broken object without --allow-unknown-type
expecting success of 1006.198 '-e can not be combined with --allow-unknown-type':
test_expect_code 128 git cat-file -e --allow-unknown-type $bogus_short_sha1
fatal: git cat-file --allow-unknown-type: use with -s or -t
ok 198 - -e can not be combined with --allow-unknown-type
expecting success of 1006.199 '-p cannot print a broken object even with --allow-unknown-type':
test_must_fail git cat-file -p $bogus_short_sha1 &&
test_expect_code 128 git cat-file -p --allow-unknown-type $bogus_short_sha1
fatal: invalid object type
fatal: git cat-file --allow-unknown-type: use with -s or -t
ok 199 - -p cannot print a broken object even with --allow-unknown-type
expecting success of 1006.200 '<type> <hash> does not work with objects of broken types':
cat >err.expect <<-\EOF &&
fatal: invalid object type "bogus"
EOF
test_must_fail git cat-file $bogus_short_type $bogus_short_sha1 2>err.actual &&
test_cmp err.expect err.actual
ok 200 - <type> <hash> does not work with objects of broken types
expecting success of 1006.201 'broken types combined with --batch and --batch-check':
echo $bogus_short_sha1 >bogus-oid &&
cat >err.expect <<-\EOF &&
fatal: invalid object type
EOF
test_must_fail git cat-file --batch <bogus-oid 2>err.actual &&
test_cmp err.expect err.actual &&
test_must_fail git cat-file --batch-check <bogus-oid 2>err.actual &&
test_cmp err.expect err.actual
ok 201 - broken types combined with --batch and --batch-check
expecting success of 1006.202 'the --batch and --batch-check options do not combine with --allow-unknown-type':
test_expect_code 128 git cat-file --batch --allow-unknown-type <bogus-oid &&
test_expect_code 128 git cat-file --batch-check --allow-unknown-type <bogus-oid
fatal: invalid object type
fatal: invalid object type
ok 202 - the --batch and --batch-check options do not combine with --allow-unknown-type
expecting success of 1006.203 'the --allow-unknown-type option does not consider replacement refs':
cat >expect <<-EOF &&
$bogus_short_type
EOF
git cat-file -t --allow-unknown-type $bogus_short_sha1 >actual &&
test_cmp expect actual &&
# Create it manually, as "git replace" will die on bogus
# types.
head=$(git rev-parse --verify HEAD) &&
test_when_finished "test-tool ref-store main delete-refs 0 msg refs/replace/$bogus_short_sha1" &&
test-tool ref-store main update-ref msg "refs/replace/$bogus_short_sha1" $head $ZERO_OID REF_SKIP_OID_VERIFICATION &&
cat >expect <<-EOF &&
commit
EOF
git cat-file -t --allow-unknown-type $bogus_short_sha1 >actual &&
test_cmp expect actual
ok 203 - the --allow-unknown-type option does not consider replacement refs
expecting success of 1006.204 'Type of broken object is correct':
echo $bogus_short_type >expect &&
git cat-file -t --allow-unknown-type $bogus_short_sha1 >actual &&
test_cmp expect actual
ok 204 - Type of broken object is correct
expecting success of 1006.205 'Size of broken object is correct':
echo $bogus_short_size >expect &&
git cat-file -s --allow-unknown-type $bogus_short_sha1 >actual &&
test_cmp expect actual
ok 205 - Size of broken object is correct
expecting success of 1006.206 'clean up broken object':
rm .git/objects/$(test_oid_to_path $bogus_short_sha1)
ok 206 - clean up broken object
expecting success of 1006.207 'Type of broken object is correct when type is large':
echo $bogus_long_type >expect &&
git cat-file -t --allow-unknown-type $bogus_long_sha1 >actual &&
test_cmp expect actual
ok 207 - Type of broken object is correct when type is large
expecting success of 1006.208 'Size of large broken object is correct when type is large':
echo $bogus_long_size >expect &&
git cat-file -s --allow-unknown-type $bogus_long_sha1 >actual &&
test_cmp expect actual
ok 208 - Size of large broken object is correct when type is large
expecting success of 1006.209 'clean up broken object':
rm .git/objects/$(test_oid_to_path $bogus_long_sha1)
ok 209 - clean up broken object
expecting success of 1006.210 'cat-file -t and -s on corrupt loose object':
git init --bare corrupt-loose.git &&
(
cd corrupt-loose.git &&
# Setup and create the empty blob and its path
empty_path=$(git rev-parse --git-path objects/$(test_oid_to_path "$EMPTY_BLOB")) &&
empty_blob=$(git hash-object -w --stdin </dev/null) &&
# Create another blob and its path
echo other >other.blob &&
other_blob=$(git hash-object -w --stdin <other.blob) &&
other_path=$(git rev-parse --git-path objects/$(test_oid_to_path "$other_blob")) &&
# Before the swap the size is 0
cat >out.expect <<-EOF &&
0
EOF
git cat-file -s "$EMPTY_BLOB" >out.actual 2>err.actual &&
test_must_be_empty err.actual &&
test_cmp out.expect out.actual &&
# Swap the two to corrupt the repository
mv -f "$other_path" "$empty_path" &&
test_must_fail git fsck 2>err.fsck &&
grep "hash-path mismatch" err.fsck &&
# confirm that cat-file is reading the new swapped-in
# blob...
cat >out.expect <<-EOF &&
blob
EOF
git cat-file -t "$EMPTY_BLOB" >out.actual 2>err.actual &&
test_must_be_empty err.actual &&
test_cmp out.expect out.actual &&
# ... since it has a different size now.
cat >out.expect <<-EOF &&
6
EOF
git cat-file -s "$EMPTY_BLOB" >out.actual 2>err.actual &&
test_must_be_empty err.actual &&
test_cmp out.expect out.actual &&
# So far "cat-file" has been happy to spew the found
# content out as-is. Try to make it zlib-invalid.
mv -f other.blob "$empty_path" &&
test_must_fail git fsck 2>err.fsck &&
cat >expect <<-EOF &&
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of ./$empty_path
error: $empty_blob: object corrupt or missing: ./$empty_path
EOF
grep "^error: " err.fsck >actual &&
test_cmp expect actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1006-cat-file/corrupt-loose.git/
error: e45c9c2666d44e0327c1f9c239a74c508336053e: hash-path mismatch, found at: ./objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
ok 210 - cat-file -t and -s on corrupt loose object
expecting success of 1006.211 'prep for symlink tests':
echo_without_newline "$hello_content" >morx &&
test_ln_s_add morx same-dir-link &&
test_ln_s_add dir link-to-dir &&
test_ln_s_add ../fleem out-of-repo-link &&
test_ln_s_add .. out-of-repo-link-dir &&
test_ln_s_add same-dir-link link-to-link &&
test_ln_s_add nope broken-same-dir-link &&
mkdir dir &&
test_ln_s_add ../morx dir/parent-dir-link &&
test_ln_s_add .. dir/link-dir &&
test_ln_s_add ../../escape dir/out-of-repo-link &&
test_ln_s_add ../.. dir/out-of-repo-link-dir &&
test_ln_s_add nope dir/broken-link-in-dir &&
mkdir dir/subdir &&
test_ln_s_add ../../morx dir/subdir/grandparent-dir-link &&
test_ln_s_add ../../../great-escape dir/subdir/out-of-repo-link &&
test_ln_s_add ../../.. dir/subdir/out-of-repo-link-dir &&
test_ln_s_add ../../../ dir/subdir/out-of-repo-link-dir-trailing &&
test_ln_s_add ../parent-dir-link dir/subdir/parent-dir-link-to-link &&
echo_without_newline "$hello_content" >dir/subdir/ind2 &&
echo_without_newline "$hello_content" >dir/ind1 &&
test_ln_s_add dir dirlink &&
test_ln_s_add dir/subdir subdirlink &&
test_ln_s_add subdir/ind2 dir/link-to-child &&
test_ln_s_add dir/link-to-child link-to-down-link &&
test_ln_s_add dir/.. up-down &&
test_ln_s_add dir/../ up-down-trailing &&
test_ln_s_add dir/../morx up-down-file &&
test_ln_s_add dir/../../morx up-up-down-file &&
test_ln_s_add subdirlink/../../morx up-two-down-file &&
test_ln_s_add loop1 loop2 &&
test_ln_s_add loop2 loop1 &&
git add morx dir/subdir/ind2 dir/ind1 &&
git commit -am "test" &&
echo $hello_sha1 blob $hello_size >found
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 86a080e] test
Author: A U Thor <author@example.com>
30 files changed, 30 insertions(+)
create mode 120000 broken-same-dir-link
create mode 120000 dir/broken-link-in-dir
create mode 100644 dir/ind1
create mode 120000 dir/link-dir
create mode 120000 dir/link-to-child
create mode 120000 dir/out-of-repo-link
create mode 120000 dir/out-of-repo-link-dir
create mode 120000 dir/parent-dir-link
create mode 120000 dir/subdir/grandparent-dir-link
create mode 100644 dir/subdir/ind2
create mode 120000 dir/subdir/out-of-repo-link
create mode 120000 dir/subdir/out-of-repo-link-dir
create mode 120000 dir/subdir/out-of-repo-link-dir-trailing
create mode 120000 dir/subdir/parent-dir-link-to-link
create mode 120000 dirlink
create mode 120000 link-to-dir
create mode 120000 link-to-down-link
create mode 120000 link-to-link
create mode 120000 loop1
create mode 120000 loop2
create mode 100644 morx
create mode 120000 out-of-repo-link
create mode 120000 out-of-repo-link-dir
create mode 120000 same-dir-link
create mode 120000 subdirlink
create mode 120000 up-down
create mode 120000 up-down-file
create mode 120000 up-down-trailing
create mode 120000 up-two-down-file
create mode 120000 up-up-down-file
ok 211 - prep for symlink tests
expecting success of 1006.212 'git cat-file --batch-check --follow-symlinks works for non-links':
echo HEAD:morx | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp found actual &&
echo HEAD:nope missing >expect &&
echo HEAD:nope | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual
ok 212 - git cat-file --batch-check --follow-symlinks works for non-links
expecting success of 1006.213 'git cat-file --batch-check --follow-symlinks works for in-repo, same-dir links':
echo HEAD:same-dir-link | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp found actual
ok 213 - git cat-file --batch-check --follow-symlinks works for in-repo, same-dir links
expecting success of 1006.214 'git cat-file --batch-check --follow-symlinks works for in-repo, links to dirs':
echo HEAD:link-to-dir/ind1 | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp found actual
ok 214 - git cat-file --batch-check --follow-symlinks works for in-repo, links to dirs
expecting success of 1006.215 'git cat-file --batch-check --follow-symlinks works for broken in-repo, same-dir links':
echo dangling 25 >expect &&
echo HEAD:broken-same-dir-link >>expect &&
echo HEAD:broken-same-dir-link | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual
ok 215 - git cat-file --batch-check --follow-symlinks works for broken in-repo, same-dir links
expecting success of 1006.216 'git cat-file --batch-check --follow-symlinks works for same-dir links-to-links':
echo HEAD:link-to-link | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp found actual
ok 216 - git cat-file --batch-check --follow-symlinks works for same-dir links-to-links
expecting success of 1006.217 'git cat-file --batch-check --follow-symlinks works for parent-dir links':
echo HEAD:dir/parent-dir-link | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp found actual &&
echo notdir 29 >expect &&
echo HEAD:dir/parent-dir-link/nope >>expect &&
echo HEAD:dir/parent-dir-link/nope | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual
ok 217 - git cat-file --batch-check --follow-symlinks works for parent-dir links
expecting success of 1006.218 'git cat-file --batch-check --follow-symlinks works for .. links':
echo dangling 22 >expect &&
echo HEAD:dir/link-dir/nope >>expect &&
echo HEAD:dir/link-dir/nope | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual &&
echo HEAD:dir/link-dir/morx | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp found actual &&
echo dangling 27 >expect &&
echo HEAD:dir/broken-link-in-dir >>expect &&
echo HEAD:dir/broken-link-in-dir | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual
ok 218 - git cat-file --batch-check --follow-symlinks works for .. links
expecting success of 1006.219 'git cat-file --batch-check --follow-symlinks works for ../.. links':
echo notdir 41 >expect &&
echo HEAD:dir/subdir/grandparent-dir-link/nope >>expect &&
echo HEAD:dir/subdir/grandparent-dir-link/nope | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual &&
echo HEAD:dir/subdir/grandparent-dir-link | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp found actual &&
echo HEAD:dir/subdir/parent-dir-link-to-link | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp found actual
ok 219 - git cat-file --batch-check --follow-symlinks works for ../.. links
expecting success of 1006.220 'git cat-file --batch-check --follow-symlinks works for dir/ links':
echo dangling 17 >expect &&
echo HEAD:dirlink/morx >>expect &&
echo HEAD:dirlink/morx | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual &&
echo $hello_sha1 blob $hello_size >expect &&
echo HEAD:dirlink/ind1 | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual
ok 220 - git cat-file --batch-check --follow-symlinks works for dir/ links
expecting success of 1006.221 'git cat-file --batch-check --follow-symlinks works for dir/subdir links':
echo dangling 20 >expect &&
echo HEAD:subdirlink/morx >>expect &&
echo HEAD:subdirlink/morx | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual &&
echo HEAD:subdirlink/ind2 | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp found actual
ok 221 - git cat-file --batch-check --follow-symlinks works for dir/subdir links
expecting success of 1006.222 'git cat-file --batch-check --follow-symlinks works for dir ->subdir links':
echo notdir 27 >expect &&
echo HEAD:dir/link-to-child/morx >>expect &&
echo HEAD:dir/link-to-child/morx | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual &&
echo HEAD:dir/link-to-child | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp found actual &&
echo HEAD:link-to-down-link | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp found actual
ok 222 - git cat-file --batch-check --follow-symlinks works for dir ->subdir links
expecting success of 1006.223 'git cat-file --batch-check --follow-symlinks works for out-of-repo symlinks':
echo symlink 8 >expect &&
echo ../fleem >>expect &&
echo HEAD:out-of-repo-link | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual &&
echo symlink 2 >expect &&
echo .. >>expect &&
echo HEAD:out-of-repo-link-dir | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual
ok 223 - git cat-file --batch-check --follow-symlinks works for out-of-repo symlinks
expecting success of 1006.224 'git cat-file --batch-check --follow-symlinks works for out-of-repo symlinks in dirs':
echo symlink 9 >expect &&
echo ../escape >>expect &&
echo HEAD:dir/out-of-repo-link | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual &&
echo symlink 2 >expect &&
echo .. >>expect &&
echo HEAD:dir/out-of-repo-link-dir | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual
ok 224 - git cat-file --batch-check --follow-symlinks works for out-of-repo symlinks in dirs
expecting success of 1006.225 'git cat-file --batch-check --follow-symlinks works for out-of-repo symlinks in subdirs':
echo symlink 15 >expect &&
echo ../great-escape >>expect &&
echo HEAD:dir/subdir/out-of-repo-link | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual &&
echo symlink 2 >expect &&
echo .. >>expect &&
echo HEAD:dir/subdir/out-of-repo-link-dir | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual &&
echo symlink 3 >expect &&
echo ../ >>expect &&
echo HEAD:dir/subdir/out-of-repo-link-dir-trailing | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual
ok 225 - git cat-file --batch-check --follow-symlinks works for out-of-repo symlinks in subdirs
expecting success of 1006.226 'git cat-file --batch-check --follow-symlinks works for symlinks with internal ..':
echo HEAD: | git cat-file --batch-check >expect &&
echo HEAD:up-down | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual &&
echo HEAD:up-down-trailing | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual &&
echo HEAD:up-down-file | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp found actual &&
echo symlink 7 >expect &&
echo ../morx >>expect &&
echo HEAD:up-up-down-file | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual &&
echo HEAD:up-two-down-file | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp found actual
ok 226 - git cat-file --batch-check --follow-symlinks works for symlinks with internal ..
expecting success of 1006.227 'git cat-file --batch-check --follow-symlink breaks loops':
echo loop 10 >expect &&
echo HEAD:loop1 >>expect &&
echo HEAD:loop1 | git cat-file --batch-check --follow-symlinks >actual &&
test_cmp expect actual
ok 227 - git cat-file --batch-check --follow-symlink breaks loops
expecting success of 1006.228 'git cat-file --batch --follow-symlink returns correct sha and mode':
echo HEAD:morx | git cat-file --batch >expect &&
echo HEAD:morx | git cat-file --batch --follow-symlinks >actual &&
test_cmp expect actual
ok 228 - git cat-file --batch --follow-symlink returns correct sha and mode
expecting success of 1006.229 'cat-file --batch-all-objects shows all objects':
# make new repos so we know the full set of objects; we will
# also make sure that there are some packed and some loose
# objects, some referenced and some not, some duplicates, and that
# there are some available only via alternates.
git init all-one &&
(
cd all-one &&
echo content >file &&
git add file &&
git commit -qm base &&
git rev-parse HEAD HEAD^{tree} HEAD:file &&
git repack -ad &&
echo not-cloned | git hash-object -w --stdin
) >expect.unsorted &&
git clone -s all-one all-two &&
(
cd all-two &&
echo local-unref | git hash-object -w --stdin
) >>expect.unsorted &&
git -C all-two rev-parse HEAD:file |
git -C all-two pack-objects .git/objects/pack/pack &&
sort <expect.unsorted >expect &&
git -C all-two cat-file --batch-all-objects \
--batch-check="%(objectname)" >actual &&
test_cmp expect actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1006-cat-file/all-one/.git/
Cloning into 'all-two'...
done.
2d40090ddd2c612f2679520aaab9f69d52e41628
ok 229 - cat-file --batch-all-objects shows all objects
expecting success of 1006.230 'cat-file --unordered works':
git -C all-two cat-file --batch-all-objects --unordered \
--batch-check="%(objectname)" >actual.unsorted &&
sort <actual.unsorted >actual &&
test_cmp expect actual
ok 230 - cat-file --unordered works
expecting success of 1006.231 'set up object list for --batch-all-objects tests':
git -C all-two cat-file --batch-all-objects --batch-check="%(objectname)" >objects
ok 231 - set up object list for --batch-all-objects tests
expecting success of 1006.232 'cat-file --batch="%(objectname)" with --batch-all-objects will work':
git -C all-two cat-file --batch="%(objectname)" <objects >expect &&
git -C all-two cat-file --batch-all-objects --batch="%(objectname)" >actual &&
cmp expect actual
ok 232 - cat-file --batch="%(objectname)" with --batch-all-objects will work
expecting success of 1006.233 'cat-file --batch="%(rest)" with --batch-all-objects will work':
git -C all-two cat-file --batch="%(rest)" <objects >expect &&
git -C all-two cat-file --batch-all-objects --batch="%(rest)" >actual &&
cmp expect actual
ok 233 - cat-file --batch="%(rest)" with --batch-all-objects will work
expecting success of 1006.234 'cat-file --batch="batman" with --batch-all-objects will work':
git -C all-two cat-file --batch="batman" <objects >expect &&
git -C all-two cat-file --batch-all-objects --batch="batman" >actual &&
cmp expect actual
ok 234 - cat-file --batch="batman" with --batch-all-objects will work
expecting success of 1006.235 'set up replacement object':
orig=$(git rev-parse HEAD) &&
git cat-file commit $orig >orig &&
{
cat orig &&
echo extra
} >fake &&
fake=$(git hash-object -t commit -w fake) &&
orig_size=$(git cat-file -s $orig) &&
fake_size=$(git cat-file -s $fake) &&
git replace $orig $fake
ok 235 - set up replacement object
expecting success of 1006.236 'cat-file --batch respects replace objects':
git cat-file --batch >actual <<-EOF &&
$orig
EOF
{
echo "$orig commit $fake_size" &&
cat fake &&
echo
} >expect &&
test_cmp expect actual
ok 236 - cat-file --batch respects replace objects
expecting success of 1006.237 'cat-file --batch-check respects replace objects':
git cat-file --batch-check >actual <<-EOF &&
$orig
EOF
echo "$orig commit $fake_size" >expect &&
test_cmp expect actual
ok 237 - cat-file --batch-check respects replace objects
expecting success of 1006.238 'cat-file --batch-all-objects --batch ignores replace':
git cat-file --batch-all-objects --batch >actual.raw &&
extract_batch_output $orig <actual.raw >actual &&
{
echo "$orig commit $orig_size" &&
cat orig &&
echo
} >expect &&
test_cmp expect actual
ok 238 - cat-file --batch-all-objects --batch ignores replace
expecting success of 1006.239 'cat-file --batch-all-objects --batch-check ignores replace':
git cat-file --batch-all-objects --batch-check >actual.raw &&
grep ^$orig actual.raw >actual &&
echo "$orig commit $orig_size" >expect &&
test_cmp expect actual
ok 239 - cat-file --batch-all-objects --batch-check ignores replace
expecting success of 1006.240 'batch-command empty command':
echo "" >cmd &&
test_expect_code 128 git cat-file --batch-command <cmd 2>err &&
grep "^fatal:.*empty command in input.*" err
fatal: empty command in input
ok 240 - batch-command empty command
expecting success of 1006.241 'batch-command whitespace before command':
echo " info deadbeef" >cmd &&
test_expect_code 128 git cat-file --batch-command <cmd 2>err &&
grep "^fatal:.*whitespace before command.*" err
fatal: whitespace before command: ' info deadbeef'
ok 241 - batch-command whitespace before command
expecting success of 1006.242 'batch-command unknown command':
echo unknown_command >cmd &&
test_expect_code 128 git cat-file --batch-command <cmd 2>err &&
grep "^fatal:.*unknown command.*" err
fatal: unknown command: 'unknown_command'
ok 242 - batch-command unknown command
expecting success of 1006.243 'batch-command missing arguments':
echo "info" >cmd &&
test_expect_code 128 git cat-file --batch-command <cmd 2>err &&
grep "^fatal:.*info requires arguments.*" err
fatal: info requires arguments
ok 243 - batch-command missing arguments
expecting success of 1006.244 'batch-command flush with arguments':
echo "flush arg" >cmd &&
test_expect_code 128 git cat-file --batch-command --buffer <cmd 2>err &&
grep "^fatal:.*flush takes no arguments.*" err
fatal: flush takes no arguments
ok 244 - batch-command flush with arguments
expecting success of 1006.245 'batch-command flush without --buffer':
echo "flush" >cmd &&
test_expect_code 128 git cat-file --batch-command <cmd 2>err &&
grep "^fatal:.*flush is only for --buffer mode.*" err
fatal: flush is only for --buffer mode
ok 245 - batch-command flush without --buffer
# passed all 245 test(s)
1..245
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1012-read-tree-df.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1014-read-tree-confusing.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1014-read-tree-confusing/.git/
expecting success of 1014.1 'create base tree':
echo content >file &&
git add file &&
git commit -m base &&
blob=$(git rev-parse HEAD:file) &&
tree=$(git rev-parse HEAD^{tree})
[master (root-commit) 5d770fe] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
ok 1 - create base tree
expecting success of 1014.2 'enable core.protectHFS for rejection tests':
git config core.protectHFS true
ok 2 - enable core.protectHFS for rejection tests
expecting success of 1014.3 'enable core.protectNTFS for rejection tests':
git config core.protectNTFS true
ok 3 - enable core.protectNTFS for rejection tests
expecting success of 1014.4 'reject . at end of path':
printf "100644 blob %s\t%s" "$blob" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.'
ok 4 - reject . at end of path
expecting success of 1014.5 'reject . as subtree':
printf "040000 tree %s\t%s" "$tree" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path './file'
ok 5 - reject . as subtree
expecting success of 1014.6 'reject .. at end of path':
printf "100644 blob %s\t%s" "$blob" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '..'
ok 6 - reject .. at end of path
expecting success of 1014.7 'reject .. as subtree':
printf "040000 tree %s\t%s" "$tree" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '../file'
ok 7 - reject .. as subtree
expecting success of 1014.8 'reject .git at end of path':
printf "100644 blob %s\t%s" "$blob" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.git'
ok 8 - reject .git at end of path
expecting success of 1014.9 'reject .git as subtree':
printf "040000 tree %s\t%s" "$tree" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.git/file'
ok 9 - reject .git as subtree
expecting success of 1014.10 'reject .GIT at end of path':
printf "100644 blob %s\t%s" "$blob" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.GIT'
ok 10 - reject .GIT at end of path
expecting success of 1014.11 'reject .GIT as subtree':
printf "040000 tree %s\t%s" "$tree" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.GIT/file'
ok 11 - reject .GIT as subtree
expecting success of 1014.12 'reject {u200c}.Git at end of path':
printf "100644 blob %s\t%s" "$blob" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.Git'
ok 12 - reject {u200c}.Git at end of path
expecting success of 1014.13 'reject {u200c}.Git as subtree':
printf "040000 tree %s\t%s" "$tree" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.Git/file'
ok 13 - reject {u200c}.Git as subtree
expecting success of 1014.14 'reject .gI{u200c}T at end of path':
printf "100644 blob %s\t%s" "$blob" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.gIT'
ok 14 - reject .gI{u200c}T at end of path
expecting success of 1014.15 'reject .gI{u200c}T as subtree':
printf "040000 tree %s\t%s" "$tree" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.gIT/file'
ok 15 - reject .gI{u200c}T as subtree
expecting success of 1014.16 'reject .GiT{u200c} at end of path':
printf "100644 blob %s\t%s" "$blob" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.GiT'
ok 16 - reject .GiT{u200c} at end of path
expecting success of 1014.17 'reject .GiT{u200c} as subtree':
printf "040000 tree %s\t%s" "$tree" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.GiT/file'
ok 17 - reject .GiT{u200c} as subtree
expecting success of 1014.18 'reject git~1 at end of path':
printf "100644 blob %s\t%s" "$blob" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path 'git~1'
ok 18 - reject git~1 at end of path
expecting success of 1014.19 'reject git~1 as subtree':
printf "040000 tree %s\t%s" "$tree" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path 'git~1/file'
ok 19 - reject git~1 as subtree
expecting success of 1014.20 'reject .git.{space} at end of path':
printf "100644 blob %s\t%s" "$blob" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.git. '
ok 20 - reject .git.{space} at end of path
expecting success of 1014.21 'reject .git.{space} as subtree':
printf "040000 tree %s\t%s" "$tree" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.git. /file'
ok 21 - reject .git.{space} as subtree
expecting success of 1014.22 'reject backslashes at end of path':
printf "100644 blob %s\t%s" "$blob" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.\.GIT\foobar'
ok 22 - reject backslashes at end of path
expecting success of 1014.23 'reject backslashes as subtree':
printf "040000 tree %s\t%s" "$tree" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.\.GIT\foobar/file'
ok 23 - reject backslashes as subtree
expecting success of 1014.24 'reject backslashes2 at end of path':
printf "100644 blob %s\t%s" "$blob" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.git\foobar'
ok 24 - reject backslashes2 at end of path
expecting success of 1014.25 'reject backslashes2 as subtree':
printf "040000 tree %s\t%s" "$tree" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.git\foobar/file'
ok 25 - reject backslashes2 as subtree
expecting success of 1014.26 'reject .git...:alternate-stream at end of path':
printf "100644 blob %s\t%s" "$blob" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.git...:alternate-stream'
ok 26 - reject .git...:alternate-stream at end of path
expecting success of 1014.27 'reject .git...:alternate-stream as subtree':
printf "040000 tree %s\t%s" "$tree" "$path" >tree &&
bogus=$(git mktree <tree) &&
test_must_fail git read-tree $bogus
error: invalid path '.git...:alternate-stream/file'
ok 27 - reject .git...:alternate-stream as subtree
expecting success of 1014.28 'utf-8 paths allowed with core.protectHFS off':
test_when_finished "git read-tree HEAD" &&
test_config core.protectHFS false &&
printf "100644 blob %s\t%s" "$blob" ".gi${u200c}t" >tree &&
ok=$(git mktree <tree) &&
git read-tree $ok
ok 28 - utf-8 paths allowed with core.protectHFS off
# passed all 28 test(s)
1..28
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0450-txt-doc-vs-help.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t0450-txt-doc-vs-help/.git/
expecting success of 0450.1 'setup: list of builtins':
git --list-cmds=builtins >builtins
ok 1 - setup: list of builtins
expecting success of 0450.2 'list of txt and help mismatches is sorted':
sort -u "$TEST_DIRECTORY"/t0450/txt-help-mismatches >expect &&
if ! test_cmp expect "$TEST_DIRECTORY"/t0450/txt-help-mismatches
then
BUG "please keep the list of txt and help mismatches sorted"
fi
ok 2 - list of txt and help mismatches is sorted
expecting success of 0450.3 'add -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 3 - add -h output has no \t
expecting success of 0450.4 'add -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 4 - add -h output has dashed labels
expecting success of 0450.5 'add -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 5 - add -h output has consistent spacing
expecting success of 0450.6 'add *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 6 - add *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.7 'add -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:36.407237982 +0000
+++ help 2023-09-16 19:10:36.439238380 +0000
@@ -1,5 +1 @@
-git add [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | -i] [--patch | -p]
- [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]] [--sparse]
- [--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing] [--renormalize]
- [--chmod=(+|-)x] [--pathspec-from-file=<file> [--pathspec-file-nul]]
- [--] [<pathspec>...]
+git add [<options>] [--] <pathspec>...
not ok 7 - add -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.8 'am -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 8 - am -h output has no \t
expecting success of 0450.9 'am -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 9 - am -h output has dashed labels
expecting success of 0450.10 'am -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 10 - am -h output has consistent spacing
expecting success of 0450.11 'am *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 11 - am *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.12 'am -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:36.695241558 +0000
+++ help 2023-09-16 19:10:36.743242154 +0000
@@ -1,10 +1,2 @@
-git am [--signoff] [--keep] [--[no-]keep-cr] [--[no-]utf8] [--no-verify]
- [--[no-]3way] [--interactive] [--committer-date-is-author-date]
- [--ignore-date] [--ignore-space-change | --ignore-whitespace]
- [--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]
- [--exclude=<path>] [--include=<path>] [--reject] [-q | --quiet]
- [--[no-]scissors] [-S[<keyid>]] [--patch-format=<format>]
- [--quoted-cr=<action>]
- [--empty=(stop|drop|keep)]
- [(<mbox> | <Maildir>)...]
-git am (--continue | --skip | --abort | --quit | --show-current-patch[=(diff|raw)] | --allow-empty)
+git am [<options>] [(<mbox> | <Maildir>)...]
+git am [<options>] (--continue | --skip | --abort)
not ok 12 - am -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.13 'annotate -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 13 - annotate -h output has no \t
expecting success of 0450.14 'annotate -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 14 - annotate -h output has dashed labels
expecting success of 0450.15 'annotate -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 15 - annotate -h output has consistent spacing
expecting success of 0450.16 'annotate *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 16 - annotate *.txt SYNOPSIS has dashed labels
expecting success of 0450.17 'annotate -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 17 - annotate -h output and SYNOPSIS agree
expecting success of 0450.18 'apply -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 18 - apply -h output has no \t
expecting success of 0450.19 'apply -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 19 - apply -h output has dashed labels
expecting success of 0450.20 'apply -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 20 - apply -h output has consistent spacing
expecting success of 0450.21 'apply *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 21 - apply *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.22 'apply -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:37.303249105 +0000
+++ help 2023-09-16 19:10:37.335249503 +0000
@@ -1,8 +1 @@
-git apply [--stat] [--numstat] [--summary] [--check] [--index | --intent-to-add] [--3way]
- [--apply] [--no-add] [--build-fake-ancestor=<file>] [-R | --reverse]
- [--allow-binary-replacement | --binary] [--reject] [-z]
- [-p<n>] [-C<n>] [--inaccurate-eof] [--recount] [--cached]
- [--ignore-space-change | --ignore-whitespace]
- [--whitespace=(nowarn|warn|fix|error|error-all)]
- [--exclude=<path>] [--include=<path>] [--directory=<root>]
- [--verbose | --quiet] [--unsafe-paths] [--allow-empty] [<patch>...]
+git apply [<options>] [<patch>...]
not ok 22 - apply -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.23 'archive -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 23 - archive -h output has no \t
expecting success of 0450.24 'archive -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 24 - archive -h output has dashed labels
expecting success of 0450.25 'archive -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 25 - archive -h output has consistent spacing
expecting success of 0450.26 'archive *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 26 - archive *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.27 'archive -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:37.599252780 +0000
+++ help 2023-09-16 19:10:37.615252978 +0000
@@ -1,4 +1,4 @@
-git archive [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>]
- [-o <file> | --output=<file>] [--worktree-attributes]
- [--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish>
- [<path>...]
+git archive [<options>] <tree-ish> [<path>...]
+git archive --list
+git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]
+git archive --remote <repo> [--exec <cmd>] --list
not ok 27 - archive -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.28 'bisect -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 28 - bisect -h output has no \t
expecting success of 0450.29 'bisect -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 29 - bisect -h output has dashed labels
expecting success of 0450.30 'bisect -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 30 - bisect -h output has consistent spacing
expecting success of 0450.31 'bisect *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 31 - bisect *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.32 'bisect -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:37.875256205 +0000
+++ help 2023-09-16 19:10:37.911256652 +0000
@@ -1 +1,10 @@
-git bisect <subcommand> <options>
+git bisect start [--term-{new,bad}=<term> --term-{old,good}=<term>] [--no-checkout] [--first-parent] [<bad> [<good>...]] [--] [<pathspec>...]
+git bisect (good|bad) [<rev>...]
+git bisect terms [--term-good | --term-bad]
+git bisect skip [(<rev>|<range>)...]
+git bisect next
+git bisect reset [<commit>]
+git bisect visualize
+git bisect replay <logfile>
+git bisect log
+git bisect run <cmd>...
not ok 32 - bisect -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.33 'blame -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 33 - blame -h output has no \t
expecting success of 0450.34 'blame -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 34 - blame -h output has dashed labels
expecting success of 0450.35 'blame -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 35 - blame -h output has consistent spacing
expecting success of 0450.36 'blame *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 36 - blame *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.37 'blame -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:38.239260723 +0000
+++ help 2023-09-16 19:10:38.267261071 +0000
@@ -1,5 +1 @@
-git blame [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-e] [-p] [-w] [--incremental]
- [-L <range>] [-S <revs-file>] [-M] [-C] [-C] [-C] [--since=<date>]
- [--ignore-rev <rev>] [--ignore-revs-file <file>]
- [--color-lines] [--color-by-age] [--progress] [--abbrev=<n>]
- [<rev> | --contents <file> | --reverse <rev>..<rev>] [--] <file>
+git blame [<options>] [<rev-opts>] [<rev>] [--] <file>
not ok 37 - blame -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.38 'branch -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 38 - branch -h output has no \t
expecting success of 0450.39 'branch -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 39 - branch -h output has dashed labels
expecting success of 0450.40 'branch -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 40 - branch -h output has consistent spacing
expecting success of 0450.41 'branch *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 41 - branch *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.42 'branch -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:38.523264248 +0000
+++ help 2023-09-16 19:10:38.547264545 +0000
@@ -1,16 +1,8 @@
-git branch [--color[=<when>] | --no-color] [--show-current]
- [-v [--abbrev=<n> | --no-abbrev]]
- [--column[=<options>] | --no-column] [--sort=<key>]
- [--merged [<commit>]] [--no-merged [<commit>]]
- [--contains [<commit>]] [--no-contains [<commit>]]
- [--points-at <object>] [--format=<format>]
- [(-r | --remotes) | (-a | --all)]
- [--list] [<pattern>...]
-git branch [--track[=(direct|inherit)] | --no-track] [-f]
- [--recurse-submodules] <branchname> [<start-point>]
-git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
-git branch --unset-upstream [<branchname>]
-git branch (-m | -M) [<oldbranch>] <newbranch>
-git branch (-c | -C) [<oldbranch>] <newbranch>
-git branch (-d | -D) [-r] <branchname>...
-git branch --edit-description [<branchname>]
+git branch [<options>] [-r | -a] [--merged] [--no-merged]
+git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-point>]
+git branch [<options>] [-l] [<pattern>...]
+git branch [<options>] [-r] (-d | -D) <branch-name>...
+git branch [<options>] (-m | -M) [<old-branch>] <new-branch>
+git branch [<options>] (-c | -C) [<old-branch>] <new-branch>
+git branch [<options>] [-r | -a] [--points-at]
+git branch [<options>] [-r | -a] [--format]
not ok 42 - branch -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.43 'bugreport -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 43 - bugreport -h output has no \t
expecting success of 0450.44 'bugreport -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 44 - bugreport -h output has dashed labels
expecting success of 0450.45 'bugreport -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 45 - bugreport -h output has consistent spacing
expecting success of 0450.46 'bugreport *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 46 - bugreport *.txt SYNOPSIS has dashed labels
expecting success of 0450.47 'bugreport -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 47 - bugreport -h output and SYNOPSIS agree
expecting success of 0450.48 'bundle -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 48 - bundle -h output has no \t
expecting success of 0450.49 'bundle -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 49 - bundle -h output has dashed labels
expecting success of 0450.50 'bundle -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 50 - bundle -h output has consistent spacing
expecting success of 0450.51 'bundle *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 51 - bundle *.txt SYNOPSIS has dashed labels
expecting success of 0450.52 'bundle -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 52 - bundle -h output and SYNOPSIS agree
expecting success of 0450.53 'cat-file -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 53 - cat-file -h output has no \t
expecting success of 0450.54 'cat-file -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 54 - cat-file -h output has dashed labels
expecting success of 0450.55 'cat-file -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 55 - cat-file -h output has consistent spacing
expecting success of 0450.56 'cat-file *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 56 - cat-file *.txt SYNOPSIS has dashed labels
expecting success of 0450.57 'cat-file -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 57 - cat-file -h output and SYNOPSIS agree
expecting success of 0450.58 'check-attr -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 58 - check-attr -h output has no \t
expecting success of 0450.59 'check-attr -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 59 - check-attr -h output has dashed labels
expecting success of 0450.60 'check-attr -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 60 - check-attr -h output has consistent spacing
expecting success of 0450.61 'check-attr *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 61 - check-attr *.txt SYNOPSIS has dashed labels
expecting success of 0450.62 'check-attr -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 62 - check-attr -h output and SYNOPSIS agree
expecting success of 0450.63 'check-ignore -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 63 - check-ignore -h output has no \t
expecting success of 0450.64 'check-ignore -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 64 - check-ignore -h output has dashed labels
expecting success of 0450.65 'check-ignore -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 65 - check-ignore -h output has consistent spacing
expecting success of 0450.66 'check-ignore *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 66 - check-ignore *.txt SYNOPSIS has dashed labels
expecting success of 0450.67 'check-ignore -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 67 - check-ignore -h output and SYNOPSIS agree
expecting success of 0450.68 'check-mailmap -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 68 - check-mailmap -h output has no \t
expecting success of 0450.69 'check-mailmap -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 69 - check-mailmap -h output has dashed labels
expecting success of 0450.70 'check-mailmap -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 70 - check-mailmap -h output has consistent spacing
expecting success of 0450.71 'check-mailmap *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 71 - check-mailmap *.txt SYNOPSIS has dashed labels
expecting success of 0450.72 'check-mailmap -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 72 - check-mailmap -h output and SYNOPSIS agree
expecting success of 0450.73 'check-ref-format -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 73 - check-ref-format -h output has no \t
expecting success of 0450.74 'check-ref-format -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 74 - check-ref-format -h output has dashed labels
expecting success of 0450.75 'check-ref-format -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 75 - check-ref-format -h output has consistent spacing
expecting success of 0450.76 'check-ref-format *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 76 - check-ref-format *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.77 'check-ref-format -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:40.403287574 +0000
+++ help 2023-09-16 19:10:40.435287971 +0000
@@ -1,4 +1,2 @@
-git check-ref-format [--normalize]
- [--[no-]allow-onelevel] [--refspec-pattern]
- <refname>
+git check-ref-format [--normalize] [<options>] <refname>
git check-ref-format --branch <branchname-shorthand>
not ok 77 - check-ref-format -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.78 'checkout -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 78 - checkout -h output has no \t
expecting success of 0450.79 'checkout -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 79 - checkout -h output has dashed labels
expecting success of 0450.80 'checkout -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 80 - checkout -h output has consistent spacing
expecting success of 0450.81 'checkout *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 81 - checkout *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.82 'checkout -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:40.703291296 +0000
+++ help 2023-09-16 19:10:40.735291693 +0000
@@ -1,7 +1,2 @@
-git checkout [-q] [-f] [-m] [<branch>]
-git checkout [-q] [-f] [-m] --detach [<branch>]
-git checkout [-q] [-f] [-m] [--detach] <commit>
-git checkout [-q] [-f] [-m] [[-b|-B|--orphan] <new-branch>] [<start-point>]
-git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <pathspec>...
-git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] --pathspec-from-file=<file> [--pathspec-file-nul]
-git checkout (-p|--patch) [<tree-ish>] [--] [<pathspec>...]
+git checkout [<options>] <branch>
+git checkout [<options>] [<branch>] -- <file>...
not ok 82 - checkout -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.83 'checkout--worker -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 83 - checkout--worker -h output has no \t
expecting success of 0450.84 'checkout--worker -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 84 - checkout--worker -h output has dashed labels
expecting success of 0450.85 'checkout--worker -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 85 - checkout--worker -h output has consistent spacing
ok 86 # skip checkout--worker *.txt SYNOPSIS has dashed labels (missing BUILTIN_TXT_CHECKOUT__WORKER)
ok 87 # skip checkout--worker -h output and SYNOPSIS agree (missing BUILTIN_TXT_CHECKOUT__WORKER)
expecting success of 0450.88 'checkout-index -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 88 - checkout-index -h output has no \t
expecting success of 0450.89 'checkout-index -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 89 - checkout-index -h output has dashed labels
expecting success of 0450.90 'checkout-index -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 90 - checkout-index -h output has consistent spacing
expecting success of 0450.91 'checkout-index *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 91 - checkout-index *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.92 'checkout-index -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:41.147296804 +0000
+++ help 2023-09-16 19:10:41.171297101 +0000
@@ -1,6 +1 @@
-git checkout-index [-u] [-q] [-a] [-f] [-n] [--prefix=<string>]
- [--stage=<number>|all]
- [--temp]
- [--ignore-skip-worktree-bits]
- [-z] [--stdin]
- [--] [<file>...]
+git checkout-index [<options>] [--] [<file>...]
not ok 92 - checkout-index -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.93 'cherry -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 93 - cherry -h output has no \t
expecting success of 0450.94 'cherry -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 94 - cherry -h output has dashed labels
expecting success of 0450.95 'cherry -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 95 - cherry -h output has consistent spacing
expecting success of 0450.96 'cherry *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 96 - cherry *.txt SYNOPSIS has dashed labels
expecting success of 0450.97 'cherry -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 97 - cherry -h output and SYNOPSIS agree
expecting success of 0450.98 'cherry-pick -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 98 - cherry-pick -h output has no \t
expecting success of 0450.99 'cherry-pick -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 99 - cherry-pick -h output has dashed labels
expecting success of 0450.100 'cherry-pick -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 100 - cherry-pick -h output has consistent spacing
expecting success of 0450.101 'cherry-pick *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 101 - cherry-pick *.txt SYNOPSIS has dashed labels
expecting success of 0450.102 'cherry-pick -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 102 - cherry-pick -h output and SYNOPSIS agree
expecting success of 0450.103 'clean -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 103 - clean -h output has no \t
expecting success of 0450.104 'clean -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 104 - clean -h output has dashed labels
expecting success of 0450.105 'clean -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 105 - clean -h output has consistent spacing
expecting success of 0450.106 'clean *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 106 - clean *.txt SYNOPSIS has dashed labels
expecting success of 0450.107 'clean -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 107 - clean -h output and SYNOPSIS agree
expecting success of 0450.108 'clone -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 108 - clone -h output has no \t
expecting success of 0450.109 'clone -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 109 - clone -h output has dashed labels
expecting success of 0450.110 'clone -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 110 - clone -h output has consistent spacing
expecting success of 0450.111 'clone *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 111 - clone *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.112 'clone -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:42.347311686 +0000
+++ help 2023-09-16 19:10:42.379312083 +0000
@@ -1,9 +1 @@
-git clone [--template=<template-directory>]
- [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror]
- [-o <name>] [-b <name>] [-u <upload-pack>] [--reference <repository>]
- [--dissociate] [--separate-git-dir <git-dir>]
- [--depth <depth>] [--[no-]single-branch] [--no-tags]
- [--recurse-submodules[=<pathspec>]] [--[no-]shallow-submodules]
- [--[no-]remote-submodules] [--jobs <n>] [--sparse] [--[no-]reject-shallow]
- [--filter=<filter> [--also-filter-submodules]] [--] <repository>
- [<directory>]
+git clone [<options>] [--] <repo> [<dir>]
not ok 112 - clone -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.113 'column -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 113 - column -h output has no \t
expecting success of 0450.114 'column -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 114 - column -h output has dashed labels
expecting success of 0450.115 'column -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 115 - column -h output has consistent spacing
expecting success of 0450.116 'column *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 116 - column *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.117 'column -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:42.615315010 +0000
+++ help 2023-09-16 19:10:42.643315357 +0000
@@ -1,2 +1 @@
-git column [--command=<name>] [--[raw-]mode=<mode>] [--width=<width>]
- [--indent=<string>] [--nl=<string>] [--padding=<n>]
+git column [<options>]
not ok 117 - column -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.118 'commit -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 118 - commit -h output has no \t
expecting success of 0450.119 'commit -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 119 - commit -h output has dashed labels
expecting success of 0450.120 'commit -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 120 - commit -h output has consistent spacing
expecting success of 0450.121 'commit *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 121 - commit *.txt SYNOPSIS has dashed labels
expecting success of 0450.122 'commit -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 122 - commit -h output and SYNOPSIS agree
expecting success of 0450.123 'commit-graph -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 123 - commit-graph -h output has no \t
expecting success of 0450.124 'commit-graph -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 124 - commit-graph -h output has dashed labels
expecting success of 0450.125 'commit-graph -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 125 - commit-graph -h output has consistent spacing
expecting success of 0450.126 'commit-graph *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 126 - commit-graph *.txt SYNOPSIS has dashed labels
expecting success of 0450.127 'commit-graph -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 127 - commit-graph -h output and SYNOPSIS agree
expecting success of 0450.128 'commit-tree -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 128 - commit-tree -h output has no \t
expecting success of 0450.129 'commit-tree -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 129 - commit-tree -h output has dashed labels
expecting success of 0450.130 'commit-tree -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 130 - commit-tree -h output has consistent spacing
expecting success of 0450.131 'commit-tree *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 131 - commit-tree *.txt SYNOPSIS has dashed labels
expecting success of 0450.132 'commit-tree -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 132 - commit-tree -h output and SYNOPSIS agree
expecting success of 0450.133 'config -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 133 - config -h output has no \t
expecting success of 0450.134 'config -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 134 - config -h output has dashed labels
expecting success of 0450.135 'config -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 135 - config -h output has consistent spacing
expecting success of 0450.136 'config *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 136 - config *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.137 'config -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:43.811329839 +0000
+++ help 2023-09-16 19:10:43.827330038 +0000
@@ -1,15 +1 @@
-git config [<file-option>] [--type=<type>] [--fixed-value] [--show-origin] [--show-scope] [-z|--null] <name> [<value> [<value-pattern>]]
-git config [<file-option>] [--type=<type>] --add <name> <value>
-git config [<file-option>] [--type=<type>] [--fixed-value] --replace-all <name> <value> [<value-pattern>]
-git config [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] [--fixed-value] --get <name> [<value-pattern>]
-git config [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] [--fixed-value] --get-all <name> [<value-pattern>]
-git config [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] [--fixed-value] [--name-only] --get-regexp <name-regex> [<value-pattern>]
-git config [<file-option>] [--type=<type>] [-z|--null] --get-urlmatch <name> <URL>
-git config [<file-option>] [--fixed-value] --unset <name> [<value-pattern>]
-git config [<file-option>] [--fixed-value] --unset-all <name> [<value-pattern>]
-git config [<file-option>] --rename-section <old-name> <new-name>
-git config [<file-option>] --remove-section <name>
-git config [<file-option>] [--show-origin] [--show-scope] [-z|--null] [--name-only] -l | --list
-git config [<file-option>] --get-color <name> [<default>]
-git config [<file-option>] --get-colorbool <name> [<stdout-is-tty>]
-git config [<file-option>] -e | --edit
+git config [<options>]
not ok 137 - config -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.138 'count-objects -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 138 - count-objects -h output has no \t
expecting success of 0450.139 'count-objects -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 139 - count-objects -h output has dashed labels
expecting success of 0450.140 'count-objects -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 140 - count-objects -h output has consistent spacing
expecting success of 0450.141 'count-objects *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 141 - count-objects *.txt SYNOPSIS has dashed labels
expecting success of 0450.142 'count-objects -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 142 - count-objects -h output and SYNOPSIS agree
expecting success of 0450.143 'credential -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 143 - credential -h output has no \t
expecting success of 0450.144 'credential -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 144 - credential -h output has dashed labels
expecting success of 0450.145 'credential -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 145 - credential -h output has consistent spacing
expecting success of 0450.146 'credential *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 146 - credential *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.147 'credential -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:44.391337029 +0000
+++ help 2023-09-16 19:10:44.447337724 +0000
@@ -0,0 +1 @@
+git credential (fill|approve|reject)
not ok 147 - credential -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.148 'credential-cache -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 148 - credential-cache -h output has no \t
expecting success of 0450.149 'credential-cache -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 149 - credential-cache -h output has dashed labels
expecting success of 0450.150 'credential-cache -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 150 - credential-cache -h output has consistent spacing
expecting success of 0450.151 'credential-cache *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 151 - credential-cache *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.152 'credential-cache -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:44.627339955 +0000
+++ help 2023-09-16 19:10:44.699340847 +0000
@@ -0,0 +1 @@
+git credential-cache [<options>] <action>
not ok 152 - credential-cache -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.153 'credential-cache--daemon -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 153 - credential-cache--daemon -h output has no \t
expecting success of 0450.154 'credential-cache--daemon -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 154 - credential-cache--daemon -h output has dashed labels
expecting success of 0450.155 'credential-cache--daemon -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 155 - credential-cache--daemon -h output has consistent spacing
expecting success of 0450.156 'credential-cache--daemon *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 156 - credential-cache--daemon *.txt SYNOPSIS has dashed labels
expecting success of 0450.157 'credential-cache--daemon -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 157 - credential-cache--daemon -h output and SYNOPSIS agree
expecting success of 0450.158 'credential-store -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 158 - credential-store -h output has no \t
expecting success of 0450.159 'credential-store -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 159 - credential-store -h output has dashed labels
expecting success of 0450.160 'credential-store -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 160 - credential-store -h output has consistent spacing
expecting success of 0450.161 'credential-store *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 161 - credential-store *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.162 'credential-store -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:45.255347739 +0000
+++ help 2023-09-16 19:10:45.311348433 +0000
@@ -0,0 +1 @@
+git credential-store [<options>] <action>
not ok 162 - credential-store -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.163 'describe -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 163 - describe -h output has no \t
expecting success of 0450.164 'describe -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 164 - describe -h output has dashed labels
expecting success of 0450.165 'describe -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 165 - describe -h output has consistent spacing
expecting success of 0450.166 'describe *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 166 - describe *.txt SYNOPSIS has dashed labels
expecting success of 0450.167 'describe -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 167 - describe -h output and SYNOPSIS agree
expecting success of 0450.168 'diagnose -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 168 - diagnose -h output has no \t
expecting success of 0450.169 'diagnose -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 169 - diagnose -h output has dashed labels
expecting success of 0450.170 'diagnose -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 170 - diagnose -h output has consistent spacing
expecting success of 0450.171 'diagnose *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 171 - diagnose *.txt SYNOPSIS has dashed labels
expecting success of 0450.172 'diagnose -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 172 - diagnose -h output and SYNOPSIS agree
expecting success of 0450.173 'diff -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 173 - diff -h output has no \t
expecting success of 0450.174 'diff -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 174 - diff -h output has dashed labels
expecting success of 0450.175 'diff -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 175 - diff -h output has consistent spacing
expecting success of 0450.176 'diff *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 176 - diff *.txt SYNOPSIS has dashed labels
expecting success of 0450.177 'diff -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 177 - diff -h output and SYNOPSIS agree
expecting success of 0450.178 'diff-files -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 178 - diff-files -h output has no \t
expecting success of 0450.179 'diff-files -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 179 - diff-files -h output has dashed labels
expecting success of 0450.180 'diff-files -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 180 - diff-files -h output has consistent spacing
expecting success of 0450.181 'diff-files *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 181 - diff-files *.txt SYNOPSIS has dashed labels
expecting success of 0450.182 'diff-files -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 182 - diff-files -h output and SYNOPSIS agree
expecting success of 0450.183 'diff-index -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 183 - diff-index -h output has no \t
expecting success of 0450.184 'diff-index -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 184 - diff-index -h output has dashed labels
expecting success of 0450.185 'diff-index -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 185 - diff-index -h output has consistent spacing
expecting success of 0450.186 'diff-index *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 186 - diff-index *.txt SYNOPSIS has dashed labels
expecting success of 0450.187 'diff-index -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 187 - diff-index -h output and SYNOPSIS agree
expecting success of 0450.188 'diff-tree -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 188 - diff-tree -h output has no \t
expecting success of 0450.189 'diff-tree -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 189 - diff-tree -h output has dashed labels
expecting success of 0450.190 'diff-tree -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 190 - diff-tree -h output has consistent spacing
expecting success of 0450.191 'diff-tree *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 191 - diff-tree *.txt SYNOPSIS has dashed labels
expecting success of 0450.192 'diff-tree -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 192 - diff-tree -h output and SYNOPSIS agree
expecting success of 0450.193 'difftool -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 193 - difftool -h output has no \t
expecting success of 0450.194 'difftool -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 194 - difftool -h output has dashed labels
expecting success of 0450.195 'difftool -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 195 - difftool -h output has consistent spacing
expecting success of 0450.196 'difftool *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 196 - difftool *.txt SYNOPSIS has dashed labels
expecting success of 0450.197 'difftool -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 197 - difftool -h output and SYNOPSIS agree
expecting success of 0450.198 'fast-export -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 198 - fast-export -h output has no \t
expecting success of 0450.199 'fast-export -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 199 - fast-export -h output has dashed labels
expecting success of 0450.200 'fast-export -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 200 - fast-export -h output has consistent spacing
expecting success of 0450.201 'fast-export *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 201 - fast-export *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.202 'fast-export -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:47.743378569 +0000
+++ help 2023-09-16 19:10:47.779379015 +0000
@@ -1 +1 @@
-git fast-export [<options>] | git fast-import
+git fast-export [<rev-list-opts>]
not ok 202 - fast-export -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.203 'fast-import -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 203 - fast-import -h output has no \t
expecting success of 0450.204 'fast-import -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 204 - fast-import -h output has dashed labels
expecting success of 0450.205 'fast-import -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 205 - fast-import -h output has consistent spacing
expecting success of 0450.206 'fast-import *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 206 - fast-import *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.207 'fast-import -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:48.007381839 +0000
+++ help 2023-09-16 19:10:48.019381988 +0000
@@ -1 +1 @@
-frontend | git fast-import [<options>]
+git fast-import [--date-format=<f>] [--max-pack-size=<n>] [--big-file-threshold=<n>] [--depth=<n>] [--active-branches=<n>] [--export-marks=<marks.file>]
not ok 207 - fast-import -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.208 'fetch -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 208 - fetch -h output has no \t
expecting success of 0450.209 'fetch -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 209 - fetch -h output has dashed labels
expecting success of 0450.210 'fetch -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 210 - fetch -h output has consistent spacing
expecting success of 0450.211 'fetch *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 211 - fetch *.txt SYNOPSIS has dashed labels
expecting success of 0450.212 'fetch -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 212 - fetch -h output and SYNOPSIS agree
expecting success of 0450.213 'fetch-pack -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 213 - fetch-pack -h output has no \t
expecting success of 0450.214 'fetch-pack -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 214 - fetch-pack -h output has dashed labels
expecting success of 0450.215 'fetch-pack -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 215 - fetch-pack -h output has consistent spacing
expecting success of 0450.216 'fetch-pack *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 216 - fetch-pack *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.217 'fetch-pack -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:48.631389569 +0000
+++ help 2023-09-16 19:10:48.659389916 +0000
@@ -1,4 +1 @@
-git fetch-pack [--all] [--quiet|-q] [--keep|-k] [--thin] [--include-tag]
- [--upload-pack=<git-upload-pack>]
- [--depth=<n>] [--no-progress]
- [-v] <repository> [<refs>...]
+git fetch-pack [--all] [--stdin] [--quiet | -q] [--keep | -k] [--thin] [--include-tag] [--upload-pack=<git-upload-pack>] [--depth=<n>] [--no-progress] [--diag-url] [-v] [<host>:]<directory> [<refs>...]
not ok 217 - fetch-pack -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.218 'fmt-merge-msg -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 218 - fmt-merge-msg -h output has no \t
expecting success of 0450.219 'fmt-merge-msg -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 219 - fmt-merge-msg -h output has dashed labels
expecting success of 0450.220 'fmt-merge-msg -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 220 - fmt-merge-msg -h output has consistent spacing
expecting success of 0450.221 'fmt-merge-msg *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 221 - fmt-merge-msg *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.222 'fmt-merge-msg -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:48.943393433 +0000
+++ help 2023-09-16 19:10:48.979393879 +0000
@@ -1,2 +1 @@
-git fmt-merge-msg [-m <message>] [--into-name <branch>] [--log[=<n>] | --no-log]
-git fmt-merge-msg [-m <message>] [--log[=<n>] | --no-log] -F <file>
+git fmt-merge-msg [-m <message>] [--log[=<n>] | --no-log] [--file <file>]
not ok 222 - fmt-merge-msg -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.223 'for-each-ref -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 223 - for-each-ref -h output has no \t
expecting success of 0450.224 'for-each-ref -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 224 - for-each-ref -h output has dashed labels
expecting success of 0450.225 'for-each-ref -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 225 - for-each-ref -h output has consistent spacing
expecting success of 0450.226 'for-each-ref *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 226 - for-each-ref *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.227 'for-each-ref -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:49.259397347 +0000
+++ help 2023-09-16 19:10:49.287397694 +0000
@@ -1,5 +1,4 @@
-git for-each-ref [--count=<count>] [--shell|--perl|--python|--tcl]
- [(--sort=<key>)...] [--format=<format>] [<pattern>...]
- [--points-at=<object>]
- [--merged[=<object>]] [--no-merged[=<object>]]
- [--contains[=<object>]] [--no-contains[=<object>]]
+git for-each-ref [<options>] [<pattern>]
+git for-each-ref [--points-at <object>]
+git for-each-ref [--merged [<commit>]] [--no-merged [<commit>]]
+git for-each-ref [--contains [<commit>]] [--no-contains [<commit>]]
not ok 227 - for-each-ref -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.228 'for-each-repo -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 228 - for-each-repo -h output has no \t
expecting success of 0450.229 'for-each-repo -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 229 - for-each-repo -h output has dashed labels
expecting success of 0450.230 'for-each-repo -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 230 - for-each-repo -h output has consistent spacing
expecting success of 0450.231 'for-each-repo *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 231 - for-each-repo *.txt SYNOPSIS has dashed labels
expecting success of 0450.232 'for-each-repo -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 232 - for-each-repo -h output and SYNOPSIS agree
expecting success of 0450.233 'format-patch -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 233 - format-patch -h output has no \t
expecting success of 0450.234 'format-patch -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 234 - format-patch -h output has dashed labels
expecting success of 0450.235 'format-patch -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 235 - format-patch -h output has consistent spacing
expecting success of 0450.236 'format-patch *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 236 - format-patch *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.237 'format-patch -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:49.891405174 +0000
+++ help 2023-09-16 19:10:49.939405768 +0000
@@ -1,23 +1 @@
-git format-patch [-k] [(-o|--output-directory) <dir> | --stdout]
- [--no-thread | --thread[=<style>]]
- [(--attach|--inline)[=<boundary>] | --no-attach]
- [-s | --signoff]
- [--signature=<signature> | --no-signature]
- [--signature-file=<file>]
- [-n | --numbered | -N | --no-numbered]
- [--start-number <n>] [--numbered-files]
- [--in-reply-to=<message id>] [--suffix=.<sfx>]
- [--ignore-if-in-upstream] [--always]
- [--cover-from-description=<mode>]
- [--rfc] [--subject-prefix=<subject prefix>]
- [(--reroll-count|-v) <n>]
- [--to=<email>] [--cc=<email>]
- [--[no-]cover-letter] [--quiet]
- [--[no-]encode-email-headers]
- [--no-notes | --notes[=<ref>]]
- [--interdiff=<previous>]
- [--range-diff=<previous> [--creation-factor=<percent>]]
- [--filename-max-length=<n>]
- [--progress]
- [<common diff options>]
- [ <since> | <revision range> ]
+git format-patch [<options>] [<since> | <revision-range>]
not ok 237 - format-patch -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.238 'fsck -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 238 - fsck -h output has no \t
expecting success of 0450.239 'fsck -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 239 - fsck -h output has dashed labels
expecting success of 0450.240 'fsck -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 240 - fsck -h output has consistent spacing
expecting success of 0450.241 'fsck *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 241 - fsck *.txt SYNOPSIS has dashed labels
expecting success of 0450.242 'fsck -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 242 - fsck -h output and SYNOPSIS agree
expecting success of 0450.243 'fsck-objects -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 243 - fsck-objects -h output has no \t
expecting success of 0450.244 'fsck-objects -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 244 - fsck-objects -h output has dashed labels
expecting success of 0450.245 'fsck-objects -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 245 - fsck-objects -h output has consistent spacing
expecting success of 0450.246 'fsck-objects *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 246 - fsck-objects *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.247 'fsck-objects -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:50.547413297 +0000
+++ help 2023-09-16 19:10:50.575413644 +0000
@@ -1 +1,4 @@
-git fsck-objects ...
+git fsck [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]
+ [--[no-]full] [--strict] [--verbose] [--lost-found]
+ [--[no-]dangling] [--[no-]progress] [--connectivity-only]
+ [--[no-]name-objects] [<object>...]
not ok 247 - fsck-objects -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.248 'fsmonitor--daemon -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 248 - fsmonitor--daemon -h output has no \t
expecting success of 0450.249 'fsmonitor--daemon -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 249 - fsmonitor--daemon -h output has dashed labels
expecting success of 0450.250 'fsmonitor--daemon -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 250 - fsmonitor--daemon -h output has consistent spacing
expecting success of 0450.251 'fsmonitor--daemon *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 251 - fsmonitor--daemon *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.252 'fsmonitor--daemon -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:50.827416764 +0000
+++ help 2023-09-16 19:10:50.867417259 +0000
@@ -1,4 +1,4 @@
-git fsmonitor--daemon start
-git fsmonitor--daemon run
+git fsmonitor--daemon start [<options>]
+git fsmonitor--daemon run [<options>]
git fsmonitor--daemon stop
git fsmonitor--daemon status
not ok 252 - fsmonitor--daemon -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.253 'gc -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 253 - gc -h output has no \t
expecting success of 0450.254 'gc -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 254 - gc -h output has dashed labels
expecting success of 0450.255 'gc -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 255 - gc -h output has consistent spacing
expecting success of 0450.256 'gc *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 256 - gc *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.257 'gc -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:51.139420627 +0000
+++ help 2023-09-16 19:10:51.167420973 +0000
@@ -1 +1 @@
-git gc [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune] [--force] [--keep-largest-pack]
+git gc [<options>]
not ok 257 - gc -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.258 'get-tar-commit-id -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 258 - get-tar-commit-id -h output has no \t
expecting success of 0450.259 'get-tar-commit-id -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 259 - get-tar-commit-id -h output has dashed labels
expecting success of 0450.260 'get-tar-commit-id -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 260 - get-tar-commit-id -h output has consistent spacing
expecting success of 0450.261 'get-tar-commit-id *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 261 - get-tar-commit-id *.txt SYNOPSIS has dashed labels
expecting success of 0450.262 'get-tar-commit-id -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 262 - get-tar-commit-id -h output and SYNOPSIS agree
expecting success of 0450.263 'grep -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 263 - grep -h output has no \t
expecting success of 0450.264 'grep -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 264 - grep -h output has dashed labels
expecting success of 0450.265 'grep -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 265 - grep -h output has consistent spacing
expecting success of 0450.266 'grep *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 266 - grep *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.267 'grep -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:51.647426916 +0000
+++ help 2023-09-16 19:10:51.667427163 +0000
@@ -1,21 +1 @@
-git grep [-a | --text] [-I] [--textconv] [-i | --ignore-case] [-w | --word-regexp]
- [-v | --invert-match] [-h|-H] [--full-name]
- [-E | --extended-regexp] [-G | --basic-regexp]
- [-P | --perl-regexp]
- [-F | --fixed-strings] [-n | --line-number] [--column]
- [-l | --files-with-matches] [-L | --files-without-match]
- [(-O | --open-files-in-pager) [<pager>]]
- [-z | --null]
- [ -o | --only-matching ] [-c | --count] [--all-match] [-q | --quiet]
- [--max-depth <depth>] [--[no-]recursive]
- [--color[=<when>] | --no-color]
- [--break] [--heading] [-p | --show-function]
- [-A <post-context>] [-B <pre-context>] [-C <context>]
- [-W | --function-context]
- [(-m | --max-count) <num>]
- [--threads <num>]
- [-f <file>] [-e] <pattern>
- [--and|--or|--not|(|)|-e <pattern>...]
- [--recurse-submodules] [--parent-basename <basename>]
- [ [--[no-]exclude-standard] [--cached | --no-index | --untracked] | <tree>...]
- [--] [<pathspec>...]
+git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]
not ok 267 - grep -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.268 'hash-object -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 268 - hash-object -h output has no \t
expecting success of 0450.269 'hash-object -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 269 - hash-object -h output has dashed labels
expecting success of 0450.270 'hash-object -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 270 - hash-object -h output has consistent spacing
expecting success of 0450.271 'hash-object *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 271 - hash-object *.txt SYNOPSIS has dashed labels
expecting success of 0450.272 'hash-object -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 272 - hash-object -h output and SYNOPSIS agree
expecting success of 0450.273 'help -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 273 - help -h output has no \t
expecting success of 0450.274 'help -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 274 - help -h output has dashed labels
expecting success of 0450.275 'help -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 275 - help -h output has consistent spacing
expecting success of 0450.276 'help *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 276 - help *.txt SYNOPSIS has dashed labels
expecting success of 0450.277 'help -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 277 - help -h output and SYNOPSIS agree
expecting success of 0450.278 'hook -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 278 - hook -h output has no \t
expecting success of 0450.279 'hook -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 279 - hook -h output has dashed labels
expecting success of 0450.280 'hook -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 280 - hook -h output has consistent spacing
expecting success of 0450.281 'hook *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 281 - hook *.txt SYNOPSIS has dashed labels
expecting success of 0450.282 'hook -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 282 - hook -h output and SYNOPSIS agree
expecting success of 0450.283 'index-pack -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 283 - index-pack -h output has no \t
expecting success of 0450.284 'index-pack -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 284 - index-pack -h output has dashed labels
expecting success of 0450.285 'index-pack -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 285 - index-pack -h output has consistent spacing
expecting success of 0450.286 'index-pack *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 286 - index-pack *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.287 'index-pack -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:52.855441868 +0000
+++ help 2023-09-16 19:10:52.883442215 +0000
@@ -1,3 +1 @@
-git index-pack [-v] [-o <index-file>] [--[no-]rev-index] <pack-file>
-git index-pack --stdin [--fix-thin] [--keep] [-v] [-o <index-file>]
- [--[no-]rev-index] [<pack-file>]
+git index-pack [-v] [-o <index-file>] [--keep | --keep=<msg>] [--[no-]rev-index] [--verify] [--strict] (<pack-file> | --stdin [--fix-thin] [<pack-file>])
not ok 287 - index-pack -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.288 'init -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 288 - init -h output has no \t
expecting success of 0450.289 'init -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 289 - init -h output has dashed labels
expecting success of 0450.290 'init -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 290 - init -h output has consistent spacing
expecting success of 0450.291 'init *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 291 - init *.txt SYNOPSIS has dashed labels
expecting success of 0450.292 'init -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 292 - init -h output and SYNOPSIS agree
expecting success of 0450.293 'init-db -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 293 - init-db -h output has no \t
expecting success of 0450.294 'init-db -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 294 - init-db -h output has dashed labels
expecting success of 0450.295 'init-db -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 295 - init-db -h output has consistent spacing
expecting success of 0450.296 'init-db *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 296 - init-db *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.297 'init-db -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:53.459449343 +0000
+++ help 2023-09-16 19:10:53.495449789 +0000
@@ -1 +1,4 @@
-git init-db [-q | --quiet] [--bare] [--template=<template-directory>] [--separate-git-dir <git-dir>] [--shared[=<permissions>]]
+git init [-q | --quiet] [--bare] [--template=<template-directory>]
+ [--separate-git-dir <git-dir>] [--object-format=<format>]
+ [-b <branch-name> | --initial-branch=<branch-name>]
+ [--shared[=<permissions>]] [<directory>]
not ok 297 - init-db -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.298 'interpret-trailers -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 298 - interpret-trailers -h output has no \t
expecting success of 0450.299 'interpret-trailers -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 299 - interpret-trailers -h output has dashed labels
expecting success of 0450.300 'interpret-trailers -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 300 - interpret-trailers -h output has consistent spacing
expecting success of 0450.301 'interpret-trailers *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 301 - interpret-trailers *.txt SYNOPSIS has dashed labels
expecting success of 0450.302 'interpret-trailers -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 302 - interpret-trailers -h output and SYNOPSIS agree
expecting success of 0450.303 'log -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 303 - log -h output has no \t
expecting success of 0450.304 'log -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 304 - log -h output has dashed labels
expecting success of 0450.305 'log -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 305 - log -h output has consistent spacing
expecting success of 0450.306 'log *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 306 - log *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.307 'log -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:54.083457065 +0000
+++ help 2023-09-16 19:10:54.111457412 +0000
@@ -1 +1,2 @@
git log [<options>] [<revision-range>] [[--] <path>...]
+git show [<options>] <object>...
not ok 307 - log -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.308 'ls-files -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 308 - ls-files -h output has no \t
expecting success of 0450.309 'ls-files -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 309 - ls-files -h output has dashed labels
expecting success of 0450.310 'ls-files -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 310 - ls-files -h output has consistent spacing
expecting success of 0450.311 'ls-files *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 311 - ls-files *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.312 'ls-files -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:54.419461223 +0000
+++ help 2023-09-16 19:10:54.447461569 +0000
@@ -1,13 +1 @@
-git ls-files [-z] [-t] [-v] [-f]
- [-c|--cached] [-d|--deleted] [-o|--others] [-i|--ignored]
- [-s|--stage] [-u|--unmerged] [-k|--killed] [-m|--modified]
- [--resolve-undo]
- [--directory [--no-empty-directory]] [--eol]
- [--deduplicate]
- [-x <pattern>|--exclude=<pattern>]
- [-X <file>|--exclude-from=<file>]
- [--exclude-per-directory=<file>]
- [--exclude-standard]
- [--error-unmatch] [--with-tree=<tree-ish>]
- [--full-name] [--recurse-submodules]
- [--abbrev[=<n>]] [--format=<format>] [--] [<file>...]
+git ls-files [<options>] [<file>...]
not ok 312 - ls-files -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.313 'ls-remote -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 313 - ls-remote -h output has no \t
expecting success of 0450.314 'ls-remote -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 314 - ls-remote -h output has dashed labels
expecting success of 0450.315 'ls-remote -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 315 - ls-remote -h output has consistent spacing
expecting success of 0450.316 'ls-remote *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 316 - ls-remote *.txt SYNOPSIS has dashed labels
expecting success of 0450.317 'ls-remote -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 317 - ls-remote -h output and SYNOPSIS agree
expecting success of 0450.318 'ls-tree -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 318 - ls-tree -h output has no \t
expecting success of 0450.319 'ls-tree -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 319 - ls-tree -h output has dashed labels
expecting success of 0450.320 'ls-tree -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 320 - ls-tree -h output has consistent spacing
expecting success of 0450.321 'ls-tree *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 321 - ls-tree *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.322 'ls-tree -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:54.895467112 +0000
+++ help 2023-09-16 19:10:54.931467558 +0000
@@ -1,3 +1 @@
-git ls-tree [-d] [-r] [-t] [-l] [-z]
- [--name-only] [--name-status] [--object-only] [--full-name] [--full-tree] [--abbrev[=<n>]] [--format=<format>]
- <tree-ish> [<path>...]
+git ls-tree [<options>] <tree-ish> [<path>...]
not ok 322 - ls-tree -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.323 'mailinfo -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 323 - mailinfo -h output has no \t
expecting success of 0450.324 'mailinfo -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 324 - mailinfo -h output has dashed labels
expecting success of 0450.325 'mailinfo -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 325 - mailinfo -h output has consistent spacing
expecting success of 0450.326 'mailinfo *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 326 - mailinfo *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.327 'mailinfo -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:55.207470972 +0000
+++ help 2023-09-16 19:10:55.231471269 +0000
@@ -1,3 +1 @@
-git mailinfo [-k|-b] [-u | --encoding=<encoding> | -n]
- [--[no-]scissors] [--quoted-cr=<action>]
- <msg> <patch>
+git mailinfo [<options>] <msg> <patch> < mail >info
not ok 327 - mailinfo -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.328 'mailsplit -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 328 - mailsplit -h output has no \t
expecting success of 0450.329 'mailsplit -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 329 - mailsplit -h output has dashed labels
expecting success of 0450.330 'mailsplit -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 330 - mailsplit -h output has consistent spacing
expecting success of 0450.331 'mailsplit *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 331 - mailsplit *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.332 'mailsplit -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:55.503474634 +0000
+++ help 2023-09-16 19:10:55.535475030 +0000
@@ -1,2 +1 @@
-git mailsplit [-b] [-f<nn>] [-d<prec>] [--keep-cr] [--mboxrd]
- -o<directory> [--] [(<mbox>|<Maildir>)...]
+git mailsplit [-d<prec>] [-f<n>] [-b] [--keep-cr] -o<directory> [(<mbox>|<Maildir>)...]
not ok 332 - mailsplit -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.333 'maintenance -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 333 - maintenance -h output has no \t
expecting success of 0450.334 'maintenance -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 334 - maintenance -h output has dashed labels
expecting success of 0450.335 'maintenance -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 335 - maintenance -h output has consistent spacing
expecting success of 0450.336 'maintenance *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 336 - maintenance *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.337 'maintenance -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:55.779478048 +0000
+++ help 2023-09-16 19:10:55.811478444 +0000
@@ -1,3 +1 @@
-git maintenance run [<options>]
-git maintenance start [--scheduler=<scheduler>]
-git maintenance (stop|register|unregister) [<options>]
+git maintenance <subcommand> [<options>]
not ok 337 - maintenance -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.338 'merge -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 338 - merge -h output has no \t
expecting success of 0450.339 'merge -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 339 - merge -h output has dashed labels
expecting success of 0450.340 'merge -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 340 - merge -h output has consistent spacing
expecting success of 0450.341 'merge *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 341 - merge *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.342 'merge -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:56.059481512 +0000
+++ help 2023-09-16 19:10:56.083481808 +0000
@@ -1,6 +1,3 @@
-git merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]
- [--no-verify] [-s <strategy>] [-X <strategy-option>] [-S[<keyid>]]
- [--[no-]allow-unrelated-histories]
- [--[no-]rerere-autoupdate] [-m <msg>] [-F <file>]
- [--into-name <branch>] [<commit>...]
-git merge (--continue | --abort | --quit)
+git merge [<options>] [<commit>...]
+git merge --abort
+git merge --continue
not ok 342 - merge -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.343 'merge-base -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 343 - merge-base -h output has no \t
expecting success of 0450.344 'merge-base -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 344 - merge-base -h output has dashed labels
expecting success of 0450.345 'merge-base -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 345 - merge-base -h output has consistent spacing
expecting success of 0450.346 'merge-base *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 346 - merge-base *.txt SYNOPSIS has dashed labels
expecting success of 0450.347 'merge-base -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 347 - merge-base -h output and SYNOPSIS agree
expecting success of 0450.348 'merge-file -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 348 - merge-file -h output has no \t
expecting success of 0450.349 'merge-file -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 349 - merge-file -h output has dashed labels
expecting success of 0450.350 'merge-file -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 350 - merge-file -h output has consistent spacing
expecting success of 0450.351 'merge-file *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 351 - merge-file *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.352 'merge-file -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:56.651488834 +0000
+++ help 2023-09-16 19:10:56.667489032 +0000
@@ -1,3 +1 @@
-git merge-file [-L <current-name> [-L <base-name> [-L <other-name>]]]
- [--ours|--theirs|--union] [-p|--stdout] [-q|--quiet] [--marker-size=<n>]
- [--[no-]diff3] <current-file> <base-file> <other-file>
+git merge-file [<options>] [-L <name1> [-L <orig> [-L <name2>]]] <file1> <orig-file> <file2>
not ok 352 - merge-file -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.353 'merge-index -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 353 - merge-index -h output has no \t
expecting success of 0450.354 'merge-index -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 354 - merge-index -h output has dashed labels
expecting success of 0450.355 'merge-index -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 355 - merge-index -h output has consistent spacing
expecting success of 0450.356 'merge-index *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 356 - merge-index *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.357 'merge-index -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:56.963492693 +0000
+++ help 2023-09-16 19:10:56.991493039 +0000
@@ -1 +1 @@
-git merge-index [-o] [-q] <merge-program> (-a | ( [--] <file>...) )
+git merge-index [-o] [-q] <merge-program> (-a | [--] [<filename>...])
not ok 357 - merge-index -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.358 'merge-ours -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 358 - merge-ours -h output has no \t
expecting success of 0450.359 'merge-ours -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 359 - merge-ours -h output has dashed labels
expecting success of 0450.360 'merge-ours -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 360 - merge-ours -h output has consistent spacing
ok 361 # skip merge-ours *.txt SYNOPSIS has dashed labels (missing BUILTIN_TXT_MERGE_OURS)
ok 362 # skip merge-ours -h output and SYNOPSIS agree (missing BUILTIN_TXT_MERGE_OURS)
expecting success of 0450.363 'merge-recursive -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 363 - merge-recursive -h output has no \t
expecting success of 0450.364 'merge-recursive -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 364 - merge-recursive -h output has dashed labels
expecting success of 0450.365 'merge-recursive -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 365 - merge-recursive -h output has consistent spacing
ok 366 # skip merge-recursive *.txt SYNOPSIS has dashed labels (missing BUILTIN_TXT_MERGE_RECURSIVE)
ok 367 # skip merge-recursive -h output and SYNOPSIS agree (missing BUILTIN_TXT_MERGE_RECURSIVE)
expecting success of 0450.368 'merge-recursive-ours -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 368 - merge-recursive-ours -h output has no \t
expecting success of 0450.369 'merge-recursive-ours -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 369 - merge-recursive-ours -h output has dashed labels
expecting success of 0450.370 'merge-recursive-ours -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 370 - merge-recursive-ours -h output has consistent spacing
ok 371 # skip merge-recursive-ours *.txt SYNOPSIS has dashed labels (missing BUILTIN_TXT_MERGE_RECURSIVE_OURS)
ok 372 # skip merge-recursive-ours -h output and SYNOPSIS agree (missing BUILTIN_TXT_MERGE_RECURSIVE_OURS)
expecting success of 0450.373 'merge-recursive-theirs -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 373 - merge-recursive-theirs -h output has no \t
expecting success of 0450.374 'merge-recursive-theirs -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 374 - merge-recursive-theirs -h output has dashed labels
expecting success of 0450.375 'merge-recursive-theirs -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 375 - merge-recursive-theirs -h output has consistent spacing
ok 376 # skip merge-recursive-theirs *.txt SYNOPSIS has dashed labels (missing BUILTIN_TXT_MERGE_RECURSIVE_THEIRS)
ok 377 # skip merge-recursive-theirs -h output and SYNOPSIS agree (missing BUILTIN_TXT_MERGE_RECURSIVE_THEIRS)
expecting success of 0450.378 'merge-subtree -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 378 - merge-subtree -h output has no \t
expecting success of 0450.379 'merge-subtree -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 379 - merge-subtree -h output has dashed labels
expecting success of 0450.380 'merge-subtree -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 380 - merge-subtree -h output has consistent spacing
ok 381 # skip merge-subtree *.txt SYNOPSIS has dashed labels (missing BUILTIN_TXT_MERGE_SUBTREE)
ok 382 # skip merge-subtree -h output and SYNOPSIS agree (missing BUILTIN_TXT_MERGE_SUBTREE)
expecting success of 0450.383 'merge-tree -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 383 - merge-tree -h output has no \t
expecting success of 0450.384 'merge-tree -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 384 - merge-tree -h output has dashed labels
expecting success of 0450.385 'merge-tree -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 385 - merge-tree -h output has consistent spacing
expecting success of 0450.386 'merge-tree *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 386 - merge-tree *.txt SYNOPSIS has dashed labels
expecting success of 0450.387 'merge-tree -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 387 - merge-tree -h output and SYNOPSIS agree
expecting success of 0450.388 'mktag -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 388 - mktag -h output has no \t
expecting success of 0450.389 'mktag -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 389 - mktag -h output has dashed labels
expecting success of 0450.390 'mktag -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 390 - mktag -h output has consistent spacing
expecting success of 0450.391 'mktag *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 391 - mktag *.txt SYNOPSIS has dashed labels
expecting success of 0450.392 'mktag -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 392 - mktag -h output and SYNOPSIS agree
expecting success of 0450.393 'mktree -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 393 - mktree -h output has no \t
expecting success of 0450.394 'mktree -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 394 - mktree -h output has dashed labels
expecting success of 0450.395 'mktree -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 395 - mktree -h output has consistent spacing
expecting success of 0450.396 'mktree *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 396 - mktree *.txt SYNOPSIS has dashed labels
expecting success of 0450.397 'mktree -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 397 - mktree -h output and SYNOPSIS agree
expecting success of 0450.398 'multi-pack-index -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 398 - multi-pack-index -h output has no \t
expecting success of 0450.399 'multi-pack-index -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 399 - multi-pack-index -h output has dashed labels
expecting success of 0450.400 'multi-pack-index -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 400 - multi-pack-index -h output has consistent spacing
expecting success of 0450.401 'multi-pack-index *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 401 - multi-pack-index *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.402 'multi-pack-index -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:59.023518164 +0000
+++ help 2023-09-16 19:10:59.059518609 +0000
@@ -1 +1,4 @@
-git multi-pack-index [--object-dir=<dir>] [--[no-]bitmap] <sub-command>
+git multi-pack-index [<options>] write [--preferred-pack=<pack>][--refs-snapshot=<path>]
+git multi-pack-index [<options>] verify
+git multi-pack-index [<options>] expire
+git multi-pack-index [<options>] repack [--batch-size=<size>]
not ok 402 - multi-pack-index -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.403 'mv -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 403 - mv -h output has no \t
expecting success of 0450.404 'mv -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 404 - mv -h output has dashed labels
expecting success of 0450.405 'mv -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 405 - mv -h output has consistent spacing
expecting success of 0450.406 'mv *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 406 - mv *.txt SYNOPSIS has dashed labels
expecting success of 0450.407 'mv -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 407 - mv -h output and SYNOPSIS agree
expecting success of 0450.408 'name-rev -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 408 - name-rev -h output has no \t
expecting success of 0450.409 'name-rev -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 409 - name-rev -h output has dashed labels
expecting success of 0450.410 'name-rev -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 410 - name-rev -h output has consistent spacing
expecting success of 0450.411 'name-rev *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 411 - name-rev *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.412 'name-rev -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:59.503524098 +0000
+++ help 2023-09-16 19:10:59.535524493 +0000
@@ -1,2 +1,3 @@
-git name-rev [--tags] [--refs=<pattern>]
- ( --all | --stdin | <commit-ish>... )
+git name-rev [<options>] <commit>...
+git name-rev [<options>] --all
+git name-rev [<options>] --annotate-stdin
not ok 412 - name-rev -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.413 'notes -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 413 - notes -h output has no \t
expecting success of 0450.414 'notes -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 414 - notes -h output has dashed labels
expecting success of 0450.415 'notes -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 415 - notes -h output has consistent spacing
expecting success of 0450.416 'notes *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 416 - notes *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.417 'notes -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:10:59.799527757 +0000
+++ help 2023-09-16 19:10:59.831528152 +0000
@@ -1,12 +1,12 @@
-git notes [list [<object>]]
-git notes add [-f] [--allow-empty] [-F <file> | -m <msg> | (-c | -C) <object>] [<object>]
-git notes copy [-f] ( --stdin | <from-object> [<to-object>] )
-git notes append [--allow-empty] [-F <file> | -m <msg> | (-c | -C) <object>] [<object>]
-git notes edit [--allow-empty] [<object>]
-git notes show [<object>]
-git notes merge [-v | -q] [-s <strategy> ] <notes-ref>
+git notes [--ref <notes-ref>] [list [<object>]]
+git notes [--ref <notes-ref>] add [-f] [--allow-empty] [-m <msg> | -F <file> | (-c | -C) <object>] [<object>]
+git notes [--ref <notes-ref>] copy [-f] <from-object> <to-object>
+git notes [--ref <notes-ref>] append [--allow-empty] [-m <msg> | -F <file> | (-c | -C) <object>] [<object>]
+git notes [--ref <notes-ref>] edit [--allow-empty] [<object>]
+git notes [--ref <notes-ref>] show [<object>]
+git notes [--ref <notes-ref>] merge [-v | -q] [-s <strategy>] <notes-ref>
git notes merge --commit [-v | -q]
git notes merge --abort [-v | -q]
-git notes remove [--ignore-missing] [--stdin] [<object>...]
-git notes prune [-n] [-v]
-git notes get-ref
+git notes [--ref <notes-ref>] remove [<object>...]
+git notes [--ref <notes-ref>] prune [-n] [-v]
+git notes [--ref <notes-ref>] get-ref
not ok 417 - notes -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.418 'pack-objects -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 418 - pack-objects -h output has no \t
expecting success of 0450.419 'pack-objects -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 419 - pack-objects -h output has dashed labels
expecting success of 0450.420 'pack-objects -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 420 - pack-objects -h output has consistent spacing
expecting success of 0450.421 'pack-objects *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 421 - pack-objects *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.422 'pack-objects -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:11:00.079531218 +0000
+++ help 2023-09-16 19:11:00.111531613 +0000
@@ -1,7 +1,2 @@
-git pack-objects [-q | --progress | --all-progress] [--all-progress-implied]
- [--no-reuse-delta] [--delta-base-offset] [--non-empty]
- [--local] [--incremental] [--window=<n>] [--depth=<n>]
- [--revs [--unpacked | --all]] [--keep-pack=<pack-name>]
- [--cruft] [--cruft-expiration=<time>]
- [--stdout [--filter=<filter-spec>] | <base-name>]
- [--shallow] [--keep-true-parents] [--[no-]sparse] < <object-list>
+git pack-objects --stdout [<options>] [< <ref-list> | < <object-list>]
+git pack-objects [<options>] <base-name> [< <ref-list> | < <object-list>]
not ok 422 - pack-objects -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.423 'pack-redundant -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 423 - pack-redundant -h output has no \t
expecting success of 0450.424 'pack-redundant -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 424 - pack-redundant -h output has dashed labels
expecting success of 0450.425 'pack-redundant -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 425 - pack-redundant -h output has consistent spacing
expecting success of 0450.426 'pack-redundant *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 426 - pack-redundant *.txt SYNOPSIS has dashed labels
expecting success of 0450.427 'pack-redundant -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 427 - pack-redundant -h output and SYNOPSIS agree
expecting success of 0450.428 'pack-refs -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 428 - pack-refs -h output has no \t
expecting success of 0450.429 'pack-refs -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 429 - pack-refs -h output has dashed labels
expecting success of 0450.430 'pack-refs -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 430 - pack-refs -h output has consistent spacing
expecting success of 0450.431 'pack-refs *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 431 - pack-refs *.txt SYNOPSIS has dashed labels
expecting success of 0450.432 'pack-refs -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 432 - pack-refs -h output and SYNOPSIS agree
expecting success of 0450.433 'patch-id -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 433 - patch-id -h output has no \t
expecting success of 0450.434 'patch-id -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 434 - patch-id -h output has dashed labels
expecting success of 0450.435 'patch-id -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 435 - patch-id -h output has consistent spacing
expecting success of 0450.436 'patch-id *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 436 - patch-id *.txt SYNOPSIS has dashed labels
expecting success of 0450.437 'patch-id -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 437 - patch-id -h output and SYNOPSIS agree
expecting success of 0450.438 'pickaxe -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 438 - pickaxe -h output has no \t
expecting success of 0450.439 'pickaxe -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 439 - pickaxe -h output has dashed labels
expecting success of 0450.440 'pickaxe -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 440 - pickaxe -h output has consistent spacing
ok 441 # skip pickaxe *.txt SYNOPSIS has dashed labels (missing BUILTIN_TXT_PICKAXE)
ok 442 # skip pickaxe -h output and SYNOPSIS agree (missing BUILTIN_TXT_PICKAXE)
expecting success of 0450.443 'prune -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 443 - prune -h output has no \t
expecting success of 0450.444 'prune -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 444 - prune -h output has dashed labels
expecting success of 0450.445 'prune -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 445 - prune -h output has consistent spacing
expecting success of 0450.446 'prune *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 446 - prune *.txt SYNOPSIS has dashed labels
expecting success of 0450.447 'prune -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 447 - prune -h output and SYNOPSIS agree
expecting success of 0450.448 'prune-packed -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 448 - prune-packed -h output has no \t
expecting success of 0450.449 'prune-packed -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 449 - prune-packed -h output has dashed labels
expecting success of 0450.450 'prune-packed -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 450 - prune-packed -h output has consistent spacing
expecting success of 0450.451 'prune-packed *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 451 - prune-packed *.txt SYNOPSIS has dashed labels
expecting success of 0450.452 'prune-packed -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 452 - prune-packed -h output and SYNOPSIS agree
expecting success of 0450.453 'pull -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 453 - pull -h output has no \t
expecting success of 0450.454 'pull -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 454 - pull -h output has dashed labels
expecting success of 0450.455 'pull -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 455 - pull -h output has consistent spacing
expecting success of 0450.456 'pull *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 456 - pull *.txt SYNOPSIS has dashed labels
expecting success of 0450.457 'pull -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 457 - pull -h output and SYNOPSIS agree
expecting success of 0450.458 'push -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 458 - push -h output has no \t
expecting success of 0450.459 'push -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 459 - push -h output has dashed labels
expecting success of 0450.460 'push -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 460 - push -h output has consistent spacing
expecting success of 0450.461 'push *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 461 - push *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.462 'push -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:11:02.315558849 +0000
+++ help 2023-09-16 19:11:02.351559294 +0000
@@ -1,6 +1 @@
-git push [--all | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack=<git-receive-pack>]
- [--repo=<repository>] [-f | --force] [-d | --delete] [--prune] [-v | --verbose]
- [-u | --set-upstream] [-o <string> | --push-option=<string>]
- [--[no-]signed|--signed=(true|false|if-asked)]
- [--force-with-lease[=<refname>[:<expect>]] [--force-if-includes]]
- [--no-verify] [<repository> [<refspec>...]]
+git push [<options>] [<repository> [<refspec>...]]
not ok 462 - push -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.463 'range-diff -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 463 - range-diff -h output has no \t
expecting success of 0450.464 'range-diff -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 464 - range-diff -h output has dashed labels
expecting success of 0450.465 'range-diff -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 465 - range-diff -h output has consistent spacing
expecting success of 0450.466 'range-diff *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 466 - range-diff *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.467 'range-diff -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:11:02.583562160 +0000
+++ help 2023-09-16 19:11:02.611562506 +0000
@@ -1,5 +1,3 @@
-git range-diff [--color=[<when>]] [--no-color] [<diff-options>]
- [--no-dual-color] [--creation-factor=<factor>]
- [--left-only | --right-only]
- ( <range1> <range2> | <rev1>...<rev2> | <base> <rev1> <rev2> )
- [[--] <path>...]
+git range-diff [<options>] <old-base>..<old-tip> <new-base>..<new-tip>
+git range-diff [<options>] <old-tip>...<new-tip>
+git range-diff [<options>] <base> <old-tip> <new-tip>
not ok 467 - range-diff -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.468 'read-tree -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 468 - read-tree -h output has no \t
expecting success of 0450.469 'read-tree -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 469 - read-tree -h output has dashed labels
expecting success of 0450.470 'read-tree -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 470 - read-tree -h output has consistent spacing
expecting success of 0450.471 'read-tree *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 471 - read-tree *.txt SYNOPSIS has dashed labels
expecting success of 0450.472 'read-tree -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 472 - read-tree -h output and SYNOPSIS agree
expecting success of 0450.473 'rebase -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 473 - rebase -h output has no \t
expecting success of 0450.474 'rebase -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 474 - rebase -h output has dashed labels
expecting success of 0450.475 'rebase -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 475 - rebase -h output has consistent spacing
expecting success of 0450.476 'rebase *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 476 - rebase *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.477 'rebase -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:11:03.083568338 +0000
+++ help 2023-09-16 19:11:03.123568832 +0000
@@ -1,5 +1,3 @@
-git rebase [-i | --interactive] [<options>] [--exec <cmd>]
- [--onto <newbase> | --keep-base] [<upstream> [<branch>]]
-git rebase [-i | --interactive] [<options>] [--exec <cmd>] [--onto <newbase>]
- --root [<branch>]
-git rebase (--continue | --skip | --abort | --quit | --edit-todo | --show-current-patch)
+git rebase [-i] [options] [--exec <cmd>] [--onto <newbase> | --keep-base] [<upstream> [<branch>]]
+git rebase [-i] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
+git rebase --continue | --abort | --skip | --edit-todo
not ok 477 - rebase -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.478 'receive-pack -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 478 - receive-pack -h output has no \t
expecting success of 0450.479 'receive-pack -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 479 - receive-pack -h output has dashed labels
expecting success of 0450.480 'receive-pack -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 480 - receive-pack -h output has consistent spacing
expecting success of 0450.481 'receive-pack *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 481 - receive-pack *.txt SYNOPSIS has dashed labels
expecting success of 0450.482 'receive-pack -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 482 - receive-pack -h output and SYNOPSIS agree
expecting success of 0450.483 'reflog -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 483 - reflog -h output has no \t
expecting success of 0450.484 'reflog -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 484 - reflog -h output has dashed labels
expecting success of 0450.485 'reflog -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 485 - reflog -h output has consistent spacing
expecting success of 0450.486 'reflog *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 486 - reflog *.txt SYNOPSIS has dashed labels
expecting success of 0450.487 'reflog -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 487 - reflog -h output and SYNOPSIS agree
expecting success of 0450.488 'remote -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 488 - remote -h output has no \t
expecting success of 0450.489 'remote -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 489 - remote -h output has dashed labels
expecting success of 0450.490 'remote -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 490 - remote -h output has consistent spacing
expecting success of 0450.491 'remote *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 491 - remote *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.492 'remote -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:11:03.947579010 +0000
+++ help 2023-09-16 19:11:03.975579356 +0000
@@ -1,13 +1,13 @@
git remote [-v | --verbose]
-git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=(fetch|push)] <name> <URL>
+git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--mirror=<fetch|push>] <name> <url>
git remote rename [--[no-]progress] <old> <new>
git remote remove <name>
git remote set-head <name> (-a | --auto | -d | --delete | <branch>)
+git remote [-v | --verbose] show [-n] <name>
+git remote prune [-n | --dry-run] <name>
+git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]
git remote set-branches [--add] <name> <branch>...
git remote get-url [--push] [--all] <name>
git remote set-url [--push] <name> <newurl> [<oldurl>]
-git remote set-url --add [--push] <name> <newurl>
-git remote set-url --delete [--push] <name> <URL>
-git remote [-v | --verbose] 'show' [-n] <name>...
-git remote prune [-n | --dry-run] <name>...
-git remote [-v | --verbose] 'update' [-p | --prune] [(<group> | <remote>)...]
+git remote set-url --add <name> <newurl>
+git remote set-url --delete <name> <url>
not ok 492 - remote -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.493 'remote-ext -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 493 - remote-ext -h output has no \t
expecting success of 0450.494 'remote-ext -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 494 - remote-ext -h output has dashed labels
expecting success of 0450.495 'remote-ext -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 495 - remote-ext -h output has consistent spacing
expecting success of 0450.496 'remote-ext *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 496 - remote-ext *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.497 'remote-ext -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:11:04.203582172 +0000
+++ help 2023-09-16 19:11:04.223582419 +0000
@@ -1 +1 @@
-git remote add <nick> "ext::<command>[ <arguments>...]"
+git remote-ext <remote> <url>
not ok 497 - remote-ext -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.498 'remote-fd -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 498 - remote-fd -h output has no \t
expecting success of 0450.499 'remote-fd -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 499 - remote-fd -h output has dashed labels
expecting success of 0450.500 'remote-fd -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 500 - remote-fd -h output has consistent spacing
expecting success of 0450.501 'remote-fd *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 501 - remote-fd *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.502 'remote-fd -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:11:04.443585136 +0000
+++ help 2023-09-16 19:11:04.503585877 +0000
@@ -0,0 +1 @@
+git remote-fd <remote> <url>
not ok 502 - remote-fd -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.503 'repack -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 503 - repack -h output has no \t
expecting success of 0450.504 'repack -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 504 - repack -h output has dashed labels
expecting success of 0450.505 'repack -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 505 - repack -h output has consistent spacing
expecting success of 0450.506 'repack *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 506 - repack *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.507 'repack -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:11:04.747588890 +0000
+++ help 2023-09-16 19:11:04.771589187 +0000
@@ -1 +1 @@
-git repack [-a] [-A] [-d] [-f] [-F] [-l] [-n] [-q] [-b] [-m] [--window=<n>] [--depth=<n>] [--threads=<n>] [--keep-pack=<pack-name>] [--write-midx]
+git repack [<options>]
not ok 507 - repack -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.508 'replace -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 508 - replace -h output has no \t
expecting success of 0450.509 'replace -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 509 - replace -h output has dashed labels
expecting success of 0450.510 'replace -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 510 - replace -h output has consistent spacing
expecting success of 0450.511 'replace *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 511 - replace *.txt SYNOPSIS has dashed labels
expecting success of 0450.512 'replace -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 512 - replace -h output and SYNOPSIS agree
expecting success of 0450.513 'rerere -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 513 - rerere -h output has no \t
expecting success of 0450.514 'rerere -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 514 - rerere -h output has dashed labels
expecting success of 0450.515 'rerere -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 515 - rerere -h output has consistent spacing
expecting success of 0450.516 'rerere *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 516 - rerere *.txt SYNOPSIS has dashed labels
expecting success of 0450.517 'rerere -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 517 - rerere -h output and SYNOPSIS agree
expecting success of 0450.518 'reset -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 518 - reset -h output has no \t
expecting success of 0450.519 'reset -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 519 - reset -h output has dashed labels
expecting success of 0450.520 'reset -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 520 - reset -h output has consistent spacing
expecting success of 0450.521 'reset *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 521 - reset *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.522 'reset -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:11:05.619599658 +0000
+++ help 2023-09-16 19:11:05.655600103 +0000
@@ -1,4 +1,4 @@
+git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]
git reset [-q] [<tree-ish>] [--] <pathspec>...
-git reset [-q] [--pathspec-from-file=<file> [--pathspec-file-nul]] [<tree-ish>]
-git reset (--patch | -p) [<tree-ish>] [--] [<pathspec>...]
-git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]
+git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [<tree-ish>]
+git reset --patch [<tree-ish>] [--] [<pathspec>...]
not ok 522 - reset -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.523 'restore -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 523 - restore -h output has no \t
expecting success of 0450.524 'restore -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 524 - restore -h output has dashed labels
expecting success of 0450.525 'restore -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 525 - restore -h output has consistent spacing
expecting success of 0450.526 'restore *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 526 - restore *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.527 'restore -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:11:05.951603758 +0000
+++ help 2023-09-16 19:11:05.983604153 +0000
@@ -1,3 +1 @@
-git restore [<options>] [--source=<tree>] [--staged] [--worktree] [--] <pathspec>...
-git restore [<options>] [--source=<tree>] [--staged] [--worktree] --pathspec-from-file=<file> [--pathspec-file-nul]
-git restore (-p|--patch) [<options>] [--source=<tree>] [--staged] [--worktree] [--] [<pathspec>...]
+git restore [<options>] [--source=<branch>] <file>...
not ok 527 - restore -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.528 'rev-list -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 528 - rev-list -h output has no \t
expecting success of 0450.529 'rev-list -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 529 - rev-list -h output has dashed labels
expecting success of 0450.530 'rev-list -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 530 - rev-list -h output has consistent spacing
expecting success of 0450.531 'rev-list *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 531 - rev-list *.txt SYNOPSIS has dashed labels
expecting success of 0450.532 'rev-list -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 532 - rev-list -h output and SYNOPSIS agree
expecting success of 0450.533 'rev-parse -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 533 - rev-parse -h output has no \t
expecting success of 0450.534 'rev-parse -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 534 - rev-parse -h output has dashed labels
expecting success of 0450.535 'rev-parse -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 535 - rev-parse -h output has consistent spacing
expecting success of 0450.536 'rev-parse *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 536 - rev-parse *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.537 'rev-parse -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:11:06.459610030 +0000
+++ help 2023-09-16 19:11:06.475610227 +0000
@@ -1 +1,3 @@
-git rev-parse [<options>] <args>...
+git rev-parse --parseopt [<options>] -- [<args>...]
+git rev-parse --sq-quote [<arg>...]
+git rev-parse [<options>] [<arg>...]
not ok 537 - rev-parse -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.538 'revert -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 538 - revert -h output has no \t
expecting success of 0450.539 'revert -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 539 - revert -h output has dashed labels
expecting success of 0450.540 'revert -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 540 - revert -h output has consistent spacing
expecting success of 0450.541 'revert *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 541 - revert *.txt SYNOPSIS has dashed labels
expecting success of 0450.542 'revert -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 542 - revert -h output and SYNOPSIS agree
expecting success of 0450.543 'rm -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 543 - rm -h output has no \t
expecting success of 0450.544 'rm -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 544 - rm -h output has dashed labels
expecting success of 0450.545 'rm -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 545 - rm -h output has consistent spacing
expecting success of 0450.546 'rm *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 546 - rm *.txt SYNOPSIS has dashed labels
expecting success of 0450.547 'rm -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 547 - rm -h output and SYNOPSIS agree
expecting success of 0450.548 'send-pack -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 548 - send-pack -h output has no \t
expecting success of 0450.549 'send-pack -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 549 - send-pack -h output has dashed labels
expecting success of 0450.550 'send-pack -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 550 - send-pack -h output has consistent spacing
expecting success of 0450.551 'send-pack *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 551 - send-pack *.txt SYNOPSIS has dashed labels
expecting success of 0450.552 'send-pack -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 552 - send-pack -h output and SYNOPSIS agree
expecting success of 0450.553 'shortlog -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 553 - shortlog -h output has no \t
expecting success of 0450.554 'shortlog -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 554 - shortlog -h output has dashed labels
expecting success of 0450.555 'shortlog -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 555 - shortlog -h output has consistent spacing
expecting success of 0450.556 'shortlog *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 556 - shortlog *.txt SYNOPSIS has dashed labels
expecting success of 0450.557 'shortlog -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 557 - shortlog -h output and SYNOPSIS agree
expecting success of 0450.558 'show -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 558 - show -h output has no \t
expecting success of 0450.559 'show -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 559 - show -h output has dashed labels
expecting success of 0450.560 'show -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 560 - show -h output has consistent spacing
expecting success of 0450.561 'show *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 561 - show *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.562 'show -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:11:07.143618474 +0000
+++ help 2023-09-16 19:11:07.151618572 +0000
@@ -1 +1,2 @@
-git show [<options>] [<object>...]
+git log [<options>] [<revision-range>] [[--] <path>...]
+git show [<options>] <object>...
not ok 562 - show -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.563 'show-branch -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 563 - show-branch -h output has no \t
expecting success of 0450.564 'show-branch -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 564 - show-branch -h output has dashed labels
expecting success of 0450.565 'show-branch -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 565 - show-branch -h output has consistent spacing
expecting success of 0450.566 'show-branch *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 566 - show-branch *.txt SYNOPSIS has dashed labels
expecting success of 0450.567 'show-branch -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 567 - show-branch -h output and SYNOPSIS agree
expecting success of 0450.568 'show-index -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 568 - show-index -h output has no \t
expecting success of 0450.569 'show-index -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 569 - show-index -h output has dashed labels
expecting success of 0450.570 'show-index -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 570 - show-index -h output has consistent spacing
expecting success of 0450.571 'show-index *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 571 - show-index *.txt SYNOPSIS has dashed labels
expecting success of 0450.572 'show-index -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 572 - show-index -h output and SYNOPSIS agree
expecting success of 0450.573 'show-ref -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 573 - show-ref -h output has no \t
expecting success of 0450.574 'show-ref -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 574 - show-ref -h output has dashed labels
expecting success of 0450.575 'show-ref -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 575 - show-ref -h output has consistent spacing
expecting success of 0450.576 'show-ref *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 576 - show-ref *.txt SYNOPSIS has dashed labels
expecting success of 0450.577 'show-ref -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 577 - show-ref -h output and SYNOPSIS agree
expecting success of 0450.578 'sparse-checkout -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 578 - sparse-checkout -h output has no \t
expecting success of 0450.579 'sparse-checkout -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 579 - sparse-checkout -h output has dashed labels
expecting success of 0450.580 'sparse-checkout -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 580 - sparse-checkout -h output has consistent spacing
expecting success of 0450.581 'sparse-checkout *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 581 - sparse-checkout *.txt SYNOPSIS has dashed labels
expecting success of 0450.582 'sparse-checkout -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 582 - sparse-checkout -h output and SYNOPSIS agree
expecting success of 0450.583 'stage -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 583 - stage -h output has no \t
expecting success of 0450.584 'stage -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 584 - stage -h output has dashed labels
expecting success of 0450.585 'stage -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 585 - stage -h output has consistent spacing
expecting success of 0450.586 'stage *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 586 - stage *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.587 'stage -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:11:07.727625682 +0000
+++ help 2023-09-16 19:11:07.743625880 +0000
@@ -1 +1 @@
-git stage <arg>...
+git add [<options>] [--] <pathspec>...
not ok 587 - stage -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.588 'stash -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 588 - stash -h output has no \t
expecting success of 0450.589 'stash -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 589 - stash -h output has dashed labels
expecting success of 0450.590 'stash -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 590 - stash -h output has consistent spacing
expecting success of 0450.591 'stash *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 591 - stash *.txt SYNOPSIS has dashed labels
expecting success of 0450.592 'stash -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 592 - stash -h output and SYNOPSIS agree
expecting success of 0450.593 'status -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 593 - status -h output has no \t
expecting success of 0450.594 'status -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 594 - status -h output has dashed labels
expecting success of 0450.595 'status -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 595 - status -h output has consistent spacing
expecting success of 0450.596 'status *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 596 - status *.txt SYNOPSIS has dashed labels
expecting success of 0450.597 'status -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 597 - status -h output and SYNOPSIS agree
expecting success of 0450.598 'stripspace -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 598 - stripspace -h output has no \t
expecting success of 0450.599 'stripspace -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 599 - stripspace -h output has dashed labels
expecting success of 0450.600 'stripspace -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 600 - stripspace -h output has consistent spacing
expecting success of 0450.601 'stripspace *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 601 - stripspace *.txt SYNOPSIS has dashed labels
expecting success of 0450.602 'stripspace -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 602 - stripspace -h output and SYNOPSIS agree
expecting success of 0450.603 'submodule--helper -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 603 - submodule--helper -h output has no \t
expecting success of 0450.604 'submodule--helper -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 604 - submodule--helper -h output has dashed labels
expecting success of 0450.605 'submodule--helper -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 605 - submodule--helper -h output has consistent spacing
ok 606 # skip submodule--helper *.txt SYNOPSIS has dashed labels (missing BUILTIN_TXT_SUBMODULE__HELPER)
ok 607 # skip submodule--helper -h output and SYNOPSIS agree (missing BUILTIN_TXT_SUBMODULE__HELPER)
expecting success of 0450.608 'switch -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 608 - switch -h output has no \t
expecting success of 0450.609 'switch -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 609 - switch -h output has dashed labels
expecting success of 0450.610 'switch -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 610 - switch -h output has consistent spacing
expecting success of 0450.611 'switch *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 611 - switch *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.612 'switch -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:11:08.227631854 +0000
+++ help 2023-09-16 19:11:08.247632100 +0000
@@ -1,4 +1 @@
-git switch [<options>] [--no-guess] <branch>
-git switch [<options>] --detach [<start-point>]
-git switch [<options>] (-c|-C) <new-branch> [<start-point>]
-git switch [<options>] --orphan <new-branch>
+git switch [<options>] [<branch>]
not ok 612 - switch -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.613 'symbolic-ref -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 613 - symbolic-ref -h output has no \t
expecting success of 0450.614 'symbolic-ref -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 614 - symbolic-ref -h output has dashed labels
expecting success of 0450.615 'symbolic-ref -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 615 - symbolic-ref -h output has consistent spacing
expecting success of 0450.616 'symbolic-ref *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 616 - symbolic-ref *.txt SYNOPSIS has dashed labels
expecting success of 0450.617 'symbolic-ref -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 617 - symbolic-ref -h output and SYNOPSIS agree
expecting success of 0450.618 'tag -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 618 - tag -h output has no \t
expecting success of 0450.619 'tag -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 619 - tag -h output has dashed labels
expecting success of 0450.620 'tag -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 620 - tag -h output has consistent spacing
expecting success of 0450.621 'tag *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 621 - tag *.txt SYNOPSIS has dashed labels
expecting success of 0450.622 'tag -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 622 - tag -h output and SYNOPSIS agree
expecting success of 0450.623 'unpack-file -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 623 - unpack-file -h output has no \t
expecting success of 0450.624 'unpack-file -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 624 - unpack-file -h output has dashed labels
expecting success of 0450.625 'unpack-file -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 625 - unpack-file -h output has consistent spacing
expecting success of 0450.626 'unpack-file *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 626 - unpack-file *.txt SYNOPSIS has dashed labels
expecting success of 0450.627 'unpack-file -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 627 - unpack-file -h output and SYNOPSIS agree
expecting success of 0450.628 'unpack-objects -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 628 - unpack-objects -h output has no \t
expecting success of 0450.629 'unpack-objects -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 629 - unpack-objects -h output has dashed labels
expecting success of 0450.630 'unpack-objects -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 630 - unpack-objects -h output has consistent spacing
expecting success of 0450.631 'unpack-objects *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 631 - unpack-objects *.txt SYNOPSIS has dashed labels
expecting success of 0450.632 'unpack-objects -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 632 - unpack-objects -h output and SYNOPSIS agree
expecting success of 0450.633 'update-index -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 633 - update-index -h output has no \t
expecting success of 0450.634 'update-index -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 634 - update-index -h output has dashed labels
expecting success of 0450.635 'update-index -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 635 - update-index -h output has consistent spacing
expecting success of 0450.636 'update-index *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 636 - update-index *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.637 'update-index -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:11:08.883639949 +0000
+++ help 2023-09-16 19:11:08.895640097 +0000
@@ -1,18 +1 @@
-git update-index
- [--add] [--remove | --force-remove] [--replace]
- [--refresh] [-q] [--unmerged] [--ignore-missing]
- [(--cacheinfo <mode>,<object>,<file>)...]
- [--chmod=(+|-)x]
- [--[no-]assume-unchanged]
- [--[no-]skip-worktree]
- [--[no-]ignore-skip-worktree-entries]
- [--[no-]fsmonitor-valid]
- [--ignore-submodules]
- [--[no-]split-index]
- [--[no-|test-|force-]untracked-cache]
- [--[no-]fsmonitor]
- [--really-refresh] [--unresolve] [--again | -g]
- [--info-only] [--index-info]
- [-z] [--stdin] [--index-version <n>]
- [--verbose]
- [--] [<file>...]
+git update-index [<options>] [--] [<file>...]
not ok 637 - update-index -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.638 'update-ref -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 638 - update-ref -h output has no \t
expecting success of 0450.639 'update-ref -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 639 - update-ref -h output has dashed labels
expecting success of 0450.640 'update-ref -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 640 - update-ref -h output has consistent spacing
expecting success of 0450.641 'update-ref *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 641 - update-ref *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.642 'update-ref -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:11:08.979641134 +0000
+++ help 2023-09-16 19:11:08.983641183 +0000
@@ -1 +1,3 @@
-git update-ref [-m <reason>] [--no-deref] (-d <ref> [<oldvalue>] | [--create-reflog] <ref> <newvalue> [<oldvalue>] | --stdin [-z])
+git update-ref [<options>] -d <refname> [<old-val>]
+git update-ref [<options>] <refname> <new-val> [<old-val>]
+git update-ref [<options>] --stdin [-z]
not ok 642 - update-ref -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.643 'update-server-info -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 643 - update-server-info -h output has no \t
expecting success of 0450.644 'update-server-info -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 644 - update-server-info -h output has dashed labels
expecting success of 0450.645 'update-server-info -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 645 - update-server-info -h output has consistent spacing
expecting success of 0450.646 'update-server-info *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 646 - update-server-info *.txt SYNOPSIS has dashed labels
expecting success of 0450.647 'update-server-info -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 647 - update-server-info -h output and SYNOPSIS agree
expecting success of 0450.648 'upload-archive -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 648 - upload-archive -h output has no \t
expecting success of 0450.649 'upload-archive -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 649 - upload-archive -h output has dashed labels
expecting success of 0450.650 'upload-archive -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 650 - upload-archive -h output has consistent spacing
expecting success of 0450.651 'upload-archive *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 651 - upload-archive *.txt SYNOPSIS has dashed labels
expecting success of 0450.652 'upload-archive -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 652 - upload-archive -h output and SYNOPSIS agree
expecting success of 0450.653 'upload-archive--writer -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 653 - upload-archive--writer -h output has no \t
expecting success of 0450.654 'upload-archive--writer -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 654 - upload-archive--writer -h output has dashed labels
expecting success of 0450.655 'upload-archive--writer -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 655 - upload-archive--writer -h output has consistent spacing
ok 656 # skip upload-archive--writer *.txt SYNOPSIS has dashed labels (missing BUILTIN_TXT_UPLOAD_ARCHIVE__WRITER)
ok 657 # skip upload-archive--writer -h output and SYNOPSIS agree (missing BUILTIN_TXT_UPLOAD_ARCHIVE__WRITER)
expecting success of 0450.658 'upload-pack -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 658 - upload-pack -h output has no \t
expecting success of 0450.659 'upload-pack -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 659 - upload-pack -h output has dashed labels
expecting success of 0450.660 'upload-pack -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 660 - upload-pack -h output has consistent spacing
expecting success of 0450.661 'upload-pack *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 661 - upload-pack *.txt SYNOPSIS has dashed labels
expecting success of 0450.662 'upload-pack -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 662 - upload-pack -h output and SYNOPSIS agree
expecting success of 0450.663 'var -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 663 - var -h output has no \t
expecting success of 0450.664 'var -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 664 - var -h output has dashed labels
expecting success of 0450.665 'var -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 665 - var -h output has consistent spacing
expecting success of 0450.666 'var *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 666 - var *.txt SYNOPSIS has dashed labels
expecting success of 0450.667 'var -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 667 - var -h output and SYNOPSIS agree
expecting success of 0450.668 'verify-commit -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 668 - verify-commit -h output has no \t
expecting success of 0450.669 'verify-commit -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 669 - verify-commit -h output has dashed labels
expecting success of 0450.670 'verify-commit -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 670 - verify-commit -h output has consistent spacing
expecting success of 0450.671 'verify-commit *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 671 - verify-commit *.txt SYNOPSIS has dashed labels
expecting success of 0450.672 'verify-commit -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 672 - verify-commit -h output and SYNOPSIS agree
expecting success of 0450.673 'verify-pack -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 673 - verify-pack -h output has no \t
expecting success of 0450.674 'verify-pack -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 674 - verify-pack -h output has dashed labels
expecting success of 0450.675 'verify-pack -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 675 - verify-pack -h output has consistent spacing
expecting success of 0450.676 'verify-pack *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 676 - verify-pack *.txt SYNOPSIS has dashed labels
expecting success of 0450.677 'verify-pack -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 677 - verify-pack -h output and SYNOPSIS agree
expecting success of 0450.678 'verify-tag -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 678 - verify-tag -h output has no \t
expecting success of 0450.679 'verify-tag -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 679 - verify-tag -h output has dashed labels
expecting success of 0450.680 'verify-tag -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 680 - verify-tag -h output has consistent spacing
expecting success of 0450.681 'verify-tag *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 681 - verify-tag *.txt SYNOPSIS has dashed labels
expecting success of 0450.682 'verify-tag -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 682 - verify-tag -h output and SYNOPSIS agree
expecting success of 0450.683 'version -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 683 - version -h output has no \t
expecting success of 0450.684 'version -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 684 - version -h output has dashed labels
expecting success of 0450.685 'version -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 685 - version -h output has consistent spacing
expecting success of 0450.686 'version *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 686 - version *.txt SYNOPSIS has dashed labels
expecting success of 0450.687 'version -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 687 - version -h output and SYNOPSIS agree
expecting success of 0450.688 'whatchanged -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 688 - whatchanged -h output has no \t
expecting success of 0450.689 'whatchanged -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 689 - whatchanged -h output has dashed labels
expecting success of 0450.690 'whatchanged -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 690 - whatchanged -h output has consistent spacing
expecting success of 0450.691 'whatchanged *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 691 - whatchanged *.txt SYNOPSIS has dashed labels
checking known breakage of 0450.692 'whatchanged -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
--- txt 2023-09-16 19:11:09.851651894 +0000
+++ help 2023-09-16 19:11:09.859651992 +0000
@@ -1 +1,2 @@
-git whatchanged <option>...
+git log [<options>] [<revision-range>] [[--] <path>...]
+git show [<options>] <object>...
not ok 692 - whatchanged -h output and SYNOPSIS agree # TODO known breakage
expecting success of 0450.693 'worktree -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 693 - worktree -h output has no \t
expecting success of 0450.694 'worktree -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 694 - worktree -h output has dashed labels
expecting success of 0450.695 'worktree -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 695 - worktree -h output has consistent spacing
expecting success of 0450.696 'worktree *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 696 - worktree *.txt SYNOPSIS has dashed labels
expecting success of 0450.697 'worktree -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 697 - worktree -h output and SYNOPSIS agree
expecting success of 0450.698 'write-tree -h output has no \t':
h2s="$(help_to_synopsis "$builtin")" &&
! grep "$HT" "$h2s"
ok 698 - write-tree -h output has no \t
expecting success of 0450.699 'write-tree -h output has dashed labels':
check_dashed_labels "$(help_to_synopsis "$builtin")"
ok 699 - write-tree -h output has dashed labels
expecting success of 0450.700 'write-tree -h output has consistent spacing':
h2s="$(help_to_synopsis "$builtin")" &&
sed -n \
-e "/^ / {
s/[^ ].*//;
p;
}" \
<"$h2s" >help &&
sort -u help >help.ws &&
if test -s help.ws
then
test_line_count = 1 help.ws
fi
ok 700 - write-tree -h output has consistent spacing
expecting success of 0450.701 'write-tree *.txt SYNOPSIS has dashed labels':
check_dashed_labels "$(txt_to_synopsis "$builtin")"
ok 701 - write-tree *.txt SYNOPSIS has dashed labels
expecting success of 0450.702 'write-tree -h output and SYNOPSIS agree':
t2s="$(txt_to_synopsis "$builtin")" &&
if test "$builtin" = "merge-tree"
then
test_when_finished "rm -f t2s.new" &&
sed -e 's/ (deprecated)$//g' <"$t2s" >t2s.new
t2s=t2s.new
fi &&
h2s="$(help_to_synopsis "$builtin")" &&
# The *.txt and -h use different spacing for the
# alignment of continued usage output, normalize it.
align_after_nl "$builtin" <"$t2s" >txt &&
align_after_nl "$builtin" <"$h2s" >help &&
test_cmp txt help
ok 702 - write-tree -h output and SYNOPSIS agree
# still have 57 known breakage(s)
# passed all remaining 645 test(s)
1..702
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1015-read-index-unmerged.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1015-read-index-unmerged/.git/
expecting success of 1015.1 'setup modify/delete + directory/file conflict':
test_create_repo df_plus_modify_delete &&
(
cd df_plus_modify_delete &&
test_write_lines a b c d e f g h >letters &&
git add letters &&
git commit -m initial &&
git checkout -b modify &&
# Throw in letters.txt for sorting order fun
# ("letters.txt" sorts between "letters" and "letters/file")
echo i >>letters &&
echo "version 2" >letters.txt &&
git add letters letters.txt &&
git commit -m modified &&
git checkout -b delete HEAD^ &&
git rm letters &&
mkdir letters &&
>letters/file &&
echo "version 1" >letters.txt &&
git add letters letters.txt &&
git commit -m deleted
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1015-read-index-unmerged/df_plus_modify_delete/.git/
[master (root-commit) 461649b] initial
Author: A U Thor <author@example.com>
1 file changed, 8 insertions(+)
create mode 100644 letters
Switched to a new branch 'modify'
[modify 4e26d91] modified
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 letters.txt
Switched to a new branch 'delete'
rm 'letters'
[delete 380ce95] deleted
Author: A U Thor <author@example.com>
3 files changed, 1 insertion(+), 8 deletions(-)
delete mode 100644 letters
create mode 100644 letters.txt
create mode 100644 letters/file
ok 1 - setup modify/delete + directory/file conflict
expecting success of 1015.2 'read-tree --reset cleans unmerged entries':
test_when_finished "git -C df_plus_modify_delete clean -f" &&
test_when_finished "git -C df_plus_modify_delete reset --hard" &&
(
cd df_plus_modify_delete &&
git checkout delete^0 &&
test_must_fail git merge modify &&
git read-tree --reset HEAD &&
git ls-files -u >conflicts &&
test_must_be_empty conflicts
)
Note: switching to 'delete^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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 380ce95 deleted
Auto-merging letters.txt
CONFLICT (add/add): Merge conflict in letters.txt
CONFLICT (file/directory): directory in the way of letters from modify; moving it to letters~modify instead.
CONFLICT (modify/delete): letters~modify deleted in HEAD and modified in modify. Version modify of letters~modify left in tree.
Automatic merge failed; fix conflicts and then commit the result.
HEAD is now at 380ce95 deleted
Removing conflicts
Removing letters~modify
ok 2 - read-tree --reset cleans unmerged entries
expecting success of 1015.3 'One reset --hard cleans unmerged entries':
test_when_finished "git -C df_plus_modify_delete clean -f" &&
test_when_finished "git -C df_plus_modify_delete reset --hard" &&
(
cd df_plus_modify_delete &&
git checkout delete^0 &&
test_must_fail git merge modify &&
git reset --hard &&
test_path_is_missing .git/MERGE_HEAD &&
git ls-files -u >conflicts &&
test_must_be_empty conflicts
)
HEAD is now at 380ce95 deleted
Auto-merging letters.txt
CONFLICT (add/add): Merge conflict in letters.txt
CONFLICT (file/directory): directory in the way of letters from modify; moving it to letters~modify instead.
CONFLICT (modify/delete): letters~modify deleted in HEAD and modified in modify. Version modify of letters~modify left in tree.
Automatic merge failed; fix conflicts and then commit the result.
HEAD is now at 380ce95 deleted
HEAD is now at 380ce95 deleted
Removing conflicts
ok 3 - One reset --hard cleans unmerged entries
expecting success of 1015.4 'setup directory/file conflict + simple edit/edit':
test_create_repo df_plus_edit_edit &&
(
cd df_plus_edit_edit &&
test_seq 1 10 >numbers &&
git add numbers &&
git commit -m initial &&
git checkout -b d-edit &&
mkdir foo &&
echo content >foo/bar &&
git add foo &&
echo 11 >>numbers &&
git add numbers &&
git commit -m "directory and edit" &&
git checkout -b f-edit d-edit^1 &&
echo content >foo &&
git add foo &&
echo eleven >>numbers &&
git add numbers &&
git commit -m "file and edit"
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1015-read-index-unmerged/df_plus_edit_edit/.git/
[master (root-commit) e5e228a] initial
Author: A U Thor <author@example.com>
1 file changed, 10 insertions(+)
create mode 100644 numbers
Switched to a new branch 'd-edit'
[d-edit 1997ecb] directory and edit
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 foo/bar
Switched to a new branch 'f-edit'
[f-edit ea28ef2] file and edit
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 foo
ok 4 - setup directory/file conflict + simple edit/edit
expecting success of 1015.5 'git merge --abort succeeds despite D/F conflict':
test_when_finished "git -C df_plus_edit_edit clean -f" &&
test_when_finished "git -C df_plus_edit_edit reset --hard" &&
(
cd df_plus_edit_edit &&
git checkout f-edit^0 &&
test_must_fail git merge d-edit^0 &&
git merge --abort &&
test_path_is_missing .git/MERGE_HEAD &&
git ls-files -u >conflicts &&
test_must_be_empty conflicts
)
Note: switching to 'f-edit^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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at ea28ef2 file and edit
CONFLICT (file/directory): directory in the way of foo from HEAD; moving it to foo~HEAD instead.
Auto-merging numbers
CONFLICT (content): Merge conflict in numbers
Automatic merge failed; fix conflicts and then commit the result.
HEAD is now at ea28ef2 file and edit
Removing conflicts
ok 5 - git merge --abort succeeds despite D/F conflict
expecting success of 1015.6 'git am --skip succeeds despite D/F conflict':
test_when_finished "git -C df_plus_edit_edit clean -f" &&
test_when_finished "git -C df_plus_edit_edit reset --hard" &&
(
cd df_plus_edit_edit &&
git checkout f-edit^0 &&
git format-patch -1 d-edit &&
test_must_fail git am -3 0001*.patch &&
git am --skip &&
test_path_is_missing .git/rebase-apply &&
git ls-files -u >conflicts &&
test_must_be_empty conflicts
)
HEAD is now at ea28ef2 file and edit
0001-directory-and-edit.patch
Applying: directory and edit
Using index info to reconstruct a base tree...
M numbers
Falling back to patching base and 3-way merge...
Merging:
ea28ef2 file and edit
virtual directory and edit
found 1 common ancestor:
virtual 75a3e2be4ba4a7062d21fba0206758f5518d6ead
Auto-merging numbers
CONFLICT (content): Merge conflict in numbers
Adding foo/bar
Removing foo to make room for subdirectory
CONFLICT (file/directory): There is a directory with name foo in directory and edit. Adding foo as foo~HEAD
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 directory and edit
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".
HEAD is now at ea28ef2 file and edit
Removing 0001-directory-and-edit.patch
Removing conflicts
Removing foo~HEAD
ok 6 - git am --skip succeeds despite D/F conflict
# passed all 6 test(s)
1..6
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1020-subdirectory.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1020-subdirectory/.git/
expecting success of 1020.1 'setup':
long="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" &&
test_write_lines $long >one &&
mkdir dir &&
test_write_lines x y z $long a b c >dir/two &&
cp one original.one &&
cp dir/two original.two
ok 1 - setup
expecting success of 1020.2 'update-index and ls-files':
git update-index --add one &&
case "$(git ls-files)" in
one) echo pass one ;;
*) echo bad one; return 1 ;;
esac &&
(
cd dir &&
git update-index --add two &&
case "$(git ls-files)" in
two) echo pass two ;;
*) echo bad two; exit 1 ;;
esac
) &&
case "$(git ls-files)" in
dir/two"$LF"one) echo pass both ;;
*) echo bad; return 1 ;;
esac
pass one
pass two
pass both
ok 2 - update-index and ls-files
expecting success of 1020.3 'cat-file':
two=$(git ls-files -s dir/two) &&
two=$(expr "$two" : "[0-7]* \\([0-9a-f]*\\)") &&
echo "$two" &&
git cat-file -p "$two" >actual &&
cmp dir/two actual &&
(
cd dir &&
git cat-file -p "$two" >actual &&
cmp two actual
)
c1144d0671912dd26751c1fbf1eac57a907f82c7
ok 3 - cat-file
expecting success of 1020.4 'diff-files':
echo a >>one &&
echo d >>dir/two &&
case "$(git diff-files --name-only)" in
dir/two"$LF"one) echo pass top ;;
*) echo bad top; return 1 ;;
esac &&
# diff should not omit leading paths
(
cd dir &&
case "$(git diff-files --name-only)" in
dir/two"$LF"one) echo pass subdir ;;
*) echo bad subdir; exit 1 ;;
esac &&
case "$(git diff-files --name-only .)" in
dir/two) echo pass subdir limited ;;
*) echo bad subdir limited; exit 1 ;;
esac
)
pass top
pass subdir
pass subdir limited
ok 4 - diff-files
expecting success of 1020.5 'write-tree':
top=$(git write-tree) &&
echo $top &&
(
cd dir &&
sub=$(git write-tree) &&
echo $sub &&
test "z$top" = "z$sub"
)
cf1e35b43464cccd320d58a813e14e25fa36b1d7
cf1e35b43464cccd320d58a813e14e25fa36b1d7
ok 5 - write-tree
expecting success of 1020.6 'checkout-index':
git checkout-index -f -u one &&
cmp one original.one &&
(
cd dir &&
git checkout-index -f -u two &&
cmp two ../original.two
)
ok 6 - checkout-index
expecting success of 1020.7 'read-tree':
rm -f one dir/two &&
tree=$(git write-tree) &&
read_tree_u_must_succeed --reset -u "$tree" &&
cmp one original.one &&
cmp dir/two original.two &&
(
cd dir &&
rm -f two &&
read_tree_u_must_succeed --reset -u "$tree" &&
cmp two ../original.two &&
cmp ../one ../original.one
)
ok 7 - read-tree
expecting success of 1020.8 'alias expansion':
(
git config alias.test-status-alias status &&
cd dir &&
git status &&
git test-status-alias
)
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: two
new file: ../one
Untracked files:
(use "git add <file>..." to include in what will be committed)
post-dry-run
post-dry-run-wt
pre-dry-run
pre-dry-run-wt
../original.one
../original.two
../post-dry-run
../post-dry-run-wt
../pre-dry-run
../pre-dry-run-wt
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: two
new file: ../one
Untracked files:
(use "git add <file>..." to include in what will be committed)
post-dry-run
post-dry-run-wt
pre-dry-run
pre-dry-run-wt
../original.one
../original.two
../post-dry-run
../post-dry-run-wt
../pre-dry-run
../pre-dry-run-wt
ok 8 - alias expansion
expecting success of 1020.9 '!alias expansion':
pwd >expect &&
(
git config alias.test-alias-directory !pwd &&
cd dir &&
git test-alias-directory >../actual
) &&
test_cmp expect actual
ok 9 - !alias expansion
expecting success of 1020.10 'GIT_PREFIX for !alias':
printf "dir/" >expect &&
(
git config alias.test-alias-directory "!sh -c \"printf \$GIT_PREFIX\"" &&
cd dir &&
git test-alias-directory >../actual
) &&
test_cmp expect actual
ok 10 - GIT_PREFIX for !alias
expecting success of 1020.11 'GIT_PREFIX for built-ins':
# Use GIT_EXTERNAL_DIFF to test that the "diff" built-in
# receives the GIT_PREFIX variable.
echo "dir/" >expect &&
write_script diff <<-\EOF &&
printf "%s\n" "$GIT_PREFIX"
EOF
(
cd dir &&
echo "change" >two &&
GIT_EXTERNAL_DIFF=./diff git diff >../actual &&
git checkout -- two
) &&
test_cmp expect actual
ok 11 - GIT_PREFIX for built-ins
expecting success of 1020.12 'no file/rev ambiguity check inside .git':
git commit -a -m 1 &&
(
cd .git &&
git show -s HEAD
)
[master (root-commit) 63e2ba9] 1
Author: A U Thor <author@example.com>
2 files changed, 58 insertions(+)
create mode 100644 dir/two
create mode 100644 one
commit 63e2ba96e88f4f612aaba03cc52a7db80cff1e0c
Author: A U Thor <author@example.com>
Date: Fri Apr 1 13:14:15 2005 +0200
1
ok 12 - no file/rev ambiguity check inside .git
expecting success of 1020.13 'no file/rev ambiguity check inside a bare repo (explicit GIT_DIR)':
test_when_finished "rm -fr foo.git" &&
git clone -s --bare .git foo.git &&
(
cd foo.git &&
# older Git needed help by exporting GIT_DIR=.
# to realize that it is inside a bare repository.
# We keep this test around for regression testing.
GIT_DIR=. git show -s HEAD
)
Cloning into bare repository 'foo.git'...
done.
commit 63e2ba96e88f4f612aaba03cc52a7db80cff1e0c
Author: A U Thor <author@example.com>
Date: Fri Apr 1 13:14:15 2005 +0200
1
ok 13 - no file/rev ambiguity check inside a bare repo (explicit GIT_DIR)
expecting success of 1020.14 'no file/rev ambiguity check inside a bare repo':
test_when_finished "rm -fr foo.git" &&
git clone -s --bare .git foo.git &&
(
cd foo.git &&
git show -s HEAD
)
Cloning into bare repository 'foo.git'...
done.
commit 63e2ba96e88f4f612aaba03cc52a7db80cff1e0c
Author: A U Thor <author@example.com>
Date: Fri Apr 1 13:14:15 2005 +0200
1
ok 14 - no file/rev ambiguity check inside a bare repo
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 1020.15 'detection should not be fooled by a symlink':
git clone -s .git another &&
ln -s another yetanother &&
(
cd yetanother/.git &&
git show -s HEAD
)
Cloning into 'another'...
done.
commit 63e2ba96e88f4f612aaba03cc52a7db80cff1e0c
Author: A U Thor <author@example.com>
Date: Fri Apr 1 13:14:15 2005 +0200
1
ok 15 - detection should not be fooled by a symlink
# passed all 15 test(s)
1..15
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1021-rerere-in-workdir.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 main
[main (root-commit) 21975ff] initial
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 world
[main 02943d2] hello
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Switched to a new branch 'side'
[side 5611ff9] goodbye
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Switched to branch 'main'
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
)
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
)
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1022-read-tree-partial-clone.sh ***
expecting success of 1022.1 'read-tree in partial clone prefetches in one batch':
test_when_finished "rm -rf server client trace" &&
git init server &&
echo foo >server/one &&
echo bar >server/two &&
git -C server add one two &&
git -C server commit -m "initial commit" &&
TREE=$(git -C server rev-parse HEAD^{tree}) &&
git -C server config uploadpack.allowfilter 1 &&
git -C server config uploadpack.allowanysha1inwant 1 &&
git clone --bare --filter=blob:none "file://$(pwd)/server" client &&
GIT_TRACE_PACKET="$(pwd)/trace" git -C client read-tree $TREE $TREE &&
# "done" marks the end of negotiation (once per fetch). Expect that
# only one fetch occurs.
grep "fetch> done" trace >donelines &&
test_line_count = 1 donelines
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1022-read-tree-partial-clone/server/.git/
[master (root-commit) a6fa93e] initial commit
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 one
create mode 100644 two
Cloning into bare repository 'client'...
ok 1 - read-tree in partial clone prefetches in one batch
# passed all 1 test(s)
1..1
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1051-large-conversion.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1051-large-conversion/.git/
expecting success of 1051.1 'setup input tests':
printf "\$Id: foo\$\\r\\n" >small &&
cat small small >large &&
git config core.bigfilethreshold 20 &&
git config filter.test.clean "sed s/.*/CLEAN/"
ok 1 - setup input tests
expecting success of 1051.2 'autocrlf=true converts on input':
test_config core.autocrlf true &&
check_input
ok 2 - autocrlf=true converts on input
expecting success of 1051.3 'eol=crlf converts on input':
set_attr eol=crlf &&
check_input
ok 3 - eol=crlf converts on input
expecting success of 1051.4 'ident converts on input':
set_attr ident &&
check_input
ok 4 - ident converts on input
expecting success of 1051.5 'user-defined filters convert on input':
set_attr filter=test &&
check_input
ok 5 - user-defined filters convert on input
expecting success of 1051.6 'setup output tests':
echo "\$Id\$" >small &&
cat small small >large &&
git add small large &&
git config core.bigfilethreshold 7 &&
git config filter.test.smudge "sed s/.*/SMUDGE/"
ok 6 - setup output tests
expecting success of 1051.7 'autocrlf=true converts on output':
test_config core.autocrlf true &&
check_output
Updated 2 paths from the index
ok 7 - autocrlf=true converts on output
expecting success of 1051.8 'eol=crlf converts on output':
set_attr eol=crlf &&
check_output
Updated 2 paths from the index
ok 8 - eol=crlf converts on output
expecting success of 1051.9 'user-defined filters convert on output':
set_attr filter=test &&
check_output
Updated 2 paths from the index
ok 9 - user-defined filters convert on output
expecting success of 1051.10 'ident converts on output':
set_attr ident &&
rm -f small large &&
git checkout small large &&
sed -n "s/Id: .*/Id: SHA/p" <small >small.clean &&
head -n 1 large >large.head &&
sed -n "s/Id: .*/Id: SHA/p" <large.head >large.clean &&
test_cmp small.clean large.clean
Updated 2 paths from the index
ok 10 - ident converts on output
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
checking prerequisite: SIZE_T_IS_64BIT
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SIZE_T_IS_64BIT" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-SIZE_T_IS_64BIT" &&
test 8 -eq "$(build_option sizeof-size_t)"
)
prerequisite SIZE_T_IS_64BIT not satisfied
checking prerequisite: LONG_IS_64BIT
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-LONG_IS_64BIT" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-LONG_IS_64BIT" &&
test 8 -le "$(build_option sizeof-long)"
)
prerequisite LONG_IS_64BIT not satisfied
ok 11 # skip files over 4GB convert on output (missing SIZE_T_IS_64BIT,EXPENSIVE of EXPENSIVE,SIZE_T_IS_64BIT,!LONG_IS_64BIT)
ok 12 # skip files over 4GB convert on input (missing SIZE_T_IS_64BIT,EXPENSIVE of EXPENSIVE,SIZE_T_IS_64BIT,!LONG_IS_64BIT)
# passed all 12 test(s)
1..12
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1060-object-corruption.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1060-object-corruption/.git/
expecting success of 1060.1 'setup corrupt repo':
git init bit-error &&
(
cd bit-error &&
test_commit content &&
corrupt_byte HEAD:content.t 10
) &&
git init no-bit-error &&
(
# distinct commit from bit-error, but containing a
# non-corrupted version of the same blob
cd no-bit-error &&
test_tick &&
test_commit content
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1060-object-corruption/bit-error/.git/
[master (root-commit) 0df6d69] content
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 content.t
1+0 records in
1+0 records out
1 byte copied, 0.000142502 s, 7.0 kB/s
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1060-object-corruption/no-bit-error/.git/
[master (root-commit) f374eba] content
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 content.t
ok 1 - setup corrupt repo
expecting success of 1060.2 'setup repo with missing object':
git init missing &&
(
cd missing &&
test_commit content &&
rm -f "$(obj_to_file HEAD:content.t)"
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1060-object-corruption/missing/.git/
[master (root-commit) 0df6d69] content
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 content.t
ok 2 - setup repo with missing object
expecting success of 1060.3 'setup repo with misnamed object':
git init misnamed &&
(
cd misnamed &&
test_commit content &&
good=$(obj_to_file HEAD:content.t) &&
blob=$(echo corrupt | git hash-object -w --stdin) &&
bad=$(obj_to_file $blob) &&
rm -f "$good" &&
mv "$bad" "$good"
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1060-object-corruption/misnamed/.git/
[master (root-commit) 0df6d69] content
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 content.t
ok 3 - setup repo with misnamed object
expecting success of 1060.4 'streaming a corrupt blob fails':
(
cd bit-error &&
test_must_fail git cat-file blob HEAD:content.t
)
error: inflate: data stream error (invalid distance too far back)
error: unable to unpack d95f3ad14dee633a758d2e331151e950dd13e4ed header
error: inflate: data stream error (invalid distance too far back)
error: unable to unpack d95f3ad14dee633a758d2e331151e950dd13e4ed header
error: inflate: data stream error (invalid distance too far back)
error: unable to unpack d95f3ad14dee633a758d2e331151e950dd13e4ed header
fatal: loose object d95f3ad14dee633a758d2e331151e950dd13e4ed (stored in .git/objects/d9/5f3ad14dee633a758d2e331151e950dd13e4ed) is corrupt
ok 4 - streaming a corrupt blob fails
expecting success of 1060.5 'getting type of a corrupt blob fails':
(
cd bit-error &&
test_must_fail git cat-file -s HEAD:content.t
)
error: inflate: data stream error (invalid distance too far back)
error: unable to unpack d95f3ad14dee633a758d2e331151e950dd13e4ed header
fatal: git cat-file: could not get object info
ok 5 - getting type of a corrupt blob fails
expecting success of 1060.6 'read-tree -u detects bit-errors in blobs':
(
cd bit-error &&
rm -f content.t &&
test_must_fail git read-tree --reset -u HEAD
)
error: inflate: data stream error (invalid distance too far back)
error: unable to unpack d95f3ad14dee633a758d2e331151e950dd13e4ed header
error: inflate: data stream error (invalid distance too far back)
error: unable to unpack d95f3ad14dee633a758d2e331151e950dd13e4ed header
fatal: loose object d95f3ad14dee633a758d2e331151e950dd13e4ed (stored in .git/objects/d9/5f3ad14dee633a758d2e331151e950dd13e4ed) is corrupt
ok 6 - read-tree -u detects bit-errors in blobs
expecting success of 1060.7 'read-tree -u detects missing objects':
(
cd missing &&
rm -f content.t &&
test_must_fail git read-tree --reset -u HEAD
)
error: unable to read sha1 file of content.t (d95f3ad14dee633a758d2e331151e950dd13e4ed)
ok 7 - read-tree -u detects missing objects
expecting success of 1060.8 'clone --no-local --bare detects corruption':
test_must_fail git clone --no-local --bare bit-error corrupt-transport
Cloning into bare repository 'corrupt-transport'...
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: fetch-pack: invalid index-pack output
ok 8 - clone --no-local --bare detects corruption
expecting success of 1060.9 'clone --no-local --bare detects missing object':
test_must_fail git clone --no-local --bare missing missing-transport
Cloning into bare repository 'missing-transport'...
remote: fatal: unable to read d95f3ad14dee633a758d2e331151e950dd13e4ed
error: git upload-pack: git-pack-objects died with error.
remote: aborting due to possible repository corruption on the remote side.
fatal: git upload-pack: aborting due to possible repository corruption on the remote side.
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
ok 9 - clone --no-local --bare detects missing object
expecting success of 1060.10 'clone --no-local --bare detects misnamed object':
test_must_fail git clone --no-local --bare misnamed misnamed-transport
Cloning into bare repository 'misnamed-transport'...
fatal: did not receive expected object d95f3ad14dee633a758d2e331151e950dd13e4ed
fatal: fetch-pack: invalid index-pack output
ok 10 - clone --no-local --bare detects misnamed object
expecting success of 1060.11 'clone --local detects corruption':
test_must_fail git clone --local bit-error corrupt-checkout
Cloning into 'corrupt-checkout'...
done.
error: inflate: data stream error (invalid distance too far back)
error: unable to unpack d95f3ad14dee633a758d2e331151e950dd13e4ed header
error: inflate: data stream error (invalid distance too far back)
error: unable to unpack d95f3ad14dee633a758d2e331151e950dd13e4ed header
fatal: loose object d95f3ad14dee633a758d2e331151e950dd13e4ed (stored in /<<PKGBUILDDIR>>/t/trash directory.t1060-object-corruption/corrupt-checkout/.git/objects/d9/5f3ad14dee633a758d2e331151e950dd13e4ed) is corrupt
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'
ok 11 - clone --local detects corruption
expecting success of 1060.12 'error detected during checkout leaves repo intact':
test_path_is_dir corrupt-checkout/.git
ok 12 - error detected during checkout leaves repo intact
expecting success of 1060.13 'clone --local detects missing objects':
test_must_fail git clone --local missing missing-checkout
Cloning into 'missing-checkout'...
done.
error: unable to read sha1 file of content.t (d95f3ad14dee633a758d2e331151e950dd13e4ed)
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'
ok 13 - clone --local detects missing objects
checking known breakage of 1060.14 'clone --local detects misnamed objects':
test_must_fail git clone --local misnamed misnamed-checkout
Cloning into 'misnamed-checkout'...
done.
test_must_fail: command succeeded: git clone --local misnamed misnamed-checkout
not ok 14 - clone --local detects misnamed objects # TODO known breakage
expecting success of 1060.15 'fetch into corrupted repo with index-pack':
cp -R bit-error bit-error-cp &&
test_when_finished "rm -rf bit-error-cp" &&
(
cd bit-error-cp &&
test_must_fail git -c transfer.unpackLimit=1 \
fetch ../no-bit-error 2>stderr &&
test_i18ngrep ! -i collision stderr
)
ok 15 - fetch into corrupted repo with index-pack
expecting success of 1060.16 'internal tree objects are not "missing"':
git init missing-empty &&
(
cd missing-empty &&
empty_tree=$(git hash-object -t tree /dev/null) &&
commit=$(echo foo | git commit-tree $empty_tree) &&
git rev-list --objects $commit
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1060-object-corruption/missing-empty/.git/
2093db06f424f426e05da2ca90f40d2663e89387
4b825dc642cb6eb9a060e54bf8d69288fbee4904
ok 16 - internal tree objects are not "missing"
expecting success of 1060.17 'partial clone of corrupted repository':
test_config -C misnamed uploadpack.allowFilter true &&
git clone --no-local --no-checkout --filter=blob:none \
misnamed corrupt-partial && \
test_must_fail git -C corrupt-partial checkout --force
Cloning into 'corrupt-partial'...
fatal: bad revision 'd95f3ad14dee633a758d2e331151e950dd13e4ed'
error: /<<PKGBUILDDIR>>/t/trash directory.t1060-object-corruption/misnamed did not send all necessary objects
fatal: could not fetch d95f3ad14dee633a758d2e331151e950dd13e4ed from promisor remote
ok 17 - partial clone of corrupted repository
# still have 1 known breakage(s)
# passed all remaining 16 test(s)
1..17
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1090-sparse-checkout-scope.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1090-sparse-checkout-scope/.git/
expecting success of 1090.1 'setup':
echo "initial" >a &&
echo "initial" >b &&
echo "initial" >c &&
git add a b c &&
git commit -m "initial commit"
[main (root-commit) 0b6cffd] initial commit
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
create mode 100644 a
create mode 100644 b
create mode 100644 c
ok 1 - setup
expecting success of 1090.2 'create feature branch':
git checkout -b feature &&
echo "modified" >b &&
echo "modified" >c &&
git add b c &&
git commit -m "modification"
Switched to a new branch 'feature'
[feature 96237bb] modification
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+), 2 deletions(-)
ok 2 - create feature branch
expecting success of 1090.3 'perform sparse checkout of main':
git config --local --bool core.sparsecheckout true &&
mkdir .git/info &&
echo "!/*" >.git/info/sparse-checkout &&
echo "/a" >>.git/info/sparse-checkout &&
echo "/c" >>.git/info/sparse-checkout &&
git checkout main &&
test_path_is_file a &&
test_path_is_missing b &&
test_path_is_file c
Switched to branch 'main'
ok 3 - perform sparse checkout of main
expecting success of 1090.4 'merge feature branch into sparse checkout of main':
git merge feature &&
test_path_is_file a &&
test_path_is_missing b &&
test_path_is_file c &&
test "$(cat c)" = "modified"
Updating 0b6cffd..96237bb
Fast-forward
b | 2 +-
c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
ok 4 - merge feature branch into sparse checkout of main
expecting success of 1090.5 'return to full checkout of main':
git checkout feature &&
echo "/*" >.git/info/sparse-checkout &&
git checkout main &&
test_path_is_file a &&
test_path_is_file b &&
test_path_is_file c &&
test "$(cat b)" = "modified"
Switched to branch 'feature'
Switched to branch 'main'
ok 5 - return to full checkout of main
expecting success of 1090.6 'skip-worktree on files outside sparse patterns':
git sparse-checkout disable &&
git sparse-checkout set --no-cone "a*" &&
git checkout-index --all --ignore-skip-worktree-bits &&
git ls-files -t >output &&
! grep ^S output >actual &&
test_must_be_empty actual &&
test_config sparse.expectFilesOutsideOfPatterns true &&
cat <<-\EOF >expect &&
S b
S c
EOF
git ls-files -t >output &&
grep ^S output >actual &&
test_cmp expect actual
ok 6 - skip-worktree on files outside sparse patterns
expecting success of 1090.7 'in partial clone, sparse checkout only fetches needed blobs':
test_create_repo server &&
git clone --template= "file://$(pwd)/server" client &&
test_config -C server uploadpack.allowfilter 1 &&
test_config -C server uploadpack.allowanysha1inwant 1 &&
echo a >server/a &&
echo bb >server/b &&
mkdir server/c &&
echo ccc >server/c/c &&
git -C server add a b c/c &&
git -C server commit -m message &&
test_config -C client core.sparsecheckout 1 &&
mkdir client/.git/info &&
echo "!/*" >client/.git/info/sparse-checkout &&
echo "/a" >>client/.git/info/sparse-checkout &&
git -C client fetch --filter=blob:none origin &&
git -C client checkout FETCH_HEAD &&
git -C client rev-list HEAD \
--quiet --objects --missing=print >unsorted_actual &&
(
printf "?" &&
git hash-object server/b &&
printf "?" &&
git hash-object server/c/c
) >unsorted_expect &&
sort unsorted_actual >actual &&
sort unsorted_expect >expect &&
test_cmp expect actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1090-sparse-checkout-scope/server/.git/
Cloning into 'client'...
warning: You appear to have cloned an empty repository.
[main (root-commit) ab14680] message
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
create mode 100644 a
create mode 100644 b
create mode 100644 c/c
From file:///<<PKGBUILDDIR>>/t/trash directory.t1090-sparse-checkout-scope/server
* [new branch] main -> origin/main
Note: switching to 'FETCH_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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at ab14680 message
ok 7 - in partial clone, sparse checkout only fetches needed blobs
# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1050-large.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1050-large/.git/
expecting success of 1050.1 'core.bigFileThreshold must be non-negative':
test_must_fail git -c core.bigFileThreshold=-1 rev-parse >out 2>err &&
grep "bad numeric config value" err &&
test_must_be_empty out
fatal: bad numeric config value '-1' for 'core.bigfilethreshold': invalid unit
ok 1 - core.bigFileThreshold must be non-negative
expecting success of 1050.2 '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 2 - setup
expecting success of 1050.3 'enter "large" codepath, with small core.bigFileThreshold':
test_when_finished "rm -rf repo" &&
git init --bare repo &&
echo large | git -C repo hash-object -w --stdin &&
git -C repo -c core.bigfilethreshold=4 fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1050-large/repo/
f60ccf3732fd547d393fe12095261c4d49cc94be
notice: HEAD points to an unborn branch (master)
notice: No default references
dangling blob f60ccf3732fd547d393fe12095261c4d49cc94be
ok 3 - enter "large" codepath, with small core.bigFileThreshold
expecting success of 1050.4 '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 4 - add with -c core.compression=0
expecting success of 1050.5 '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 5 - add with -c core.compression=9
expecting success of 1050.6 '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 6 - add with -c core.compression=0 -c pack.compression=0
expecting success of 1050.7 '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 7 - add with -c core.compression=9 -c pack.compression=0
expecting success of 1050.8 '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 8 - add with -c core.compression=0 -c pack.compression=9
expecting success of 1050.9 '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 9 - add with -c core.compression=9 -c pack.compression=9
expecting success of 1050.10 '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 10 - add with -c pack.compression=0
expecting success of 1050.11 '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 11 - add with -c pack.compression=9
expecting success of 1050.12 'add a large file or two':
git add large1 huge large2 &&
# make sure we got a single packfile and no loose objects
count=0 idx= &&
for p in .git/objects/pack/pack-*.pack
do
count=$(( $count + 1 )) &&
test_path_is_file "$p" &&
idx=${p%.pack}.idx &&
test_path_is_file "$idx" || return 1
done &&
test $count = 1 &&
cnt=$(git show-index <"$idx" | wc -l) &&
test $cnt = 2 &&
for l in .git/objects/$OIDPATH_REGEX
do
test_path_is_missing "$l" || return 1
done &&
# 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 )) &&
test_path_is_file "$p" &&
idx=${p%.pack}.idx &&
test_path_is_file "$idx" || return 1
done &&
test $count = 1
ok 12 - add a large file or two
expecting success of 1050.13 '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 13 - checkout a large file
expecting success of 1050.14 '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 )) || return 1
done &&
test $count = 2 &&
(
git hash-object --stdin <mid1 &&
git hash-object --stdin <mid2 &&
git hash-object --stdin <mid3
) |
sort >expect &&
for pi in .git/objects/pack/pack-*.idx
do
git show-index <"$pi" || return 1
done |
sed -e "s/^[0-9]* \([0-9a-f]*\) .*/\1/" |
sort >actual &&
test_cmp expect actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1050-large/mid/.git/
ok 14 - packsize limit
expecting success of 1050.15 '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 15 - diff --raw
expecting success of 1050.16 'diff --stat':
git diff --stat HEAD^ HEAD
large1 | Bin 2000000 -> 2000009 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
ok 16 - diff --stat
expecting success of 1050.17 'diff':
git diff HEAD^ HEAD >actual &&
grep "Binary files.*differ" actual
Binary files a/large1 and b/large1 differ
ok 17 - diff
expecting success of 1050.18 'diff --cached':
git diff --cached HEAD^ >actual &&
grep "Binary files.*differ" actual
Binary files a/large1 and b/large1 differ
ok 18 - diff --cached
expecting success of 1050.19 'hash-object':
git hash-object large1
171a2cf5cd75bd8d405266c986591716925e9712
ok 19 - hash-object
expecting success of 1050.20 'cat-file a large file':
git cat-file blob :large1 >/dev/null
ok 20 - cat-file a large file
expecting success of 1050.21 'cat-file a large file from a tag':
git tag -m largefile largefiletag :large1 &&
git cat-file blob largefiletag >/dev/null
ok 21 - cat-file a large file from a tag
expecting success of 1050.22 'git-show a large file':
git show :large1 >/dev/null
ok 22 - git-show a large file
expecting success of 1050.23 '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 23 - index-pack
expecting success of 1050.24 'repack':
git repack -ad
ok 24 - repack
expecting success of 1050.25 '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 /<<PKGBUILDDIR>>/t/trash directory.t1050-large/loose/.git/
dc5b4c5413c9a2a6ca4f121474e1c9c8ea086153
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1050-large/packed/.git/
ok 25 - pack-objects with large loose object
expecting success of 1050.26 'tar archiving':
git archive --format=tar HEAD >/dev/null
ok 26 - tar archiving
expecting success of 1050.27 'zip archiving, store only':
git archive --format=zip -0 HEAD >/dev/null
ok 27 - zip archiving, store only
expecting success of 1050.28 'zip archiving, deflate':
git archive --format=zip HEAD >/dev/null
ok 28 - zip archiving, deflate
expecting success of 1050.29 'fsck large blobs':
git fsck 2>err &&
test_must_be_empty err
ok 29 - fsck large blobs
# passed all 29 test(s)
1..29
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1091-sparse-checkout-builtin.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1091-sparse-checkout-builtin/.git/
expecting success of 1091.1 'setup':
git init repo &&
(
cd repo &&
echo "initial" >a &&
mkdir folder1 folder2 deep &&
mkdir deep/deeper1 deep/deeper2 &&
mkdir deep/deeper1/deepest &&
cp a folder1 &&
cp a folder2 &&
cp a deep &&
cp a deep/deeper1 &&
cp a deep/deeper2 &&
cp a deep/deeper1/deepest &&
git add . &&
git commit -m "initial commit"
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1091-sparse-checkout-builtin/repo/.git/
[main (root-commit) ebf8b57] initial commit
Author: A U Thor <author@example.com>
7 files changed, 7 insertions(+)
create mode 100644 a
create mode 100644 deep/a
create mode 100644 deep/deeper1/a
create mode 100644 deep/deeper1/deepest/a
create mode 100644 deep/deeper2/a
create mode 100644 folder1/a
create mode 100644 folder2/a
ok 1 - setup
expecting success of 1091.2 'git sparse-checkout list (not sparse)':
test_must_fail git -C repo sparse-checkout list >list 2>err &&
test_must_be_empty list &&
test_i18ngrep "this worktree is not sparse" err
fatal: this worktree is not sparse
ok 2 - git sparse-checkout list (not sparse)
expecting success of 1091.3 'git sparse-checkout list (not sparse)':
git -C repo sparse-checkout set &&
rm repo/.git/info/sparse-checkout &&
git -C repo sparse-checkout list >list 2>err &&
test_must_be_empty list &&
test_i18ngrep "this worktree is not sparse (sparse-checkout file may not exist)" err
warning: this worktree is not sparse (sparse-checkout file may not exist)
ok 3 - git sparse-checkout list (not sparse)
expecting success of 1091.4 'git sparse-checkout list (populated)':
test_when_finished rm -f repo/.git/info/sparse-checkout &&
cat >repo/.git/info/sparse-checkout <<-\EOF &&
/folder1/*
/deep/
**/a
!*bin*
EOF
cp repo/.git/info/sparse-checkout expect &&
git -C repo sparse-checkout list >list &&
test_cmp expect list
warning: unrecognized pattern: '/folder1/*'
warning: disabling cone pattern matching
ok 4 - git sparse-checkout list (populated)
expecting success of 1091.5 'git sparse-checkout init':
git -C repo sparse-checkout init --no-cone &&
cat >expect <<-\EOF &&
/*
!/*/
EOF
test_cmp expect repo/.git/info/sparse-checkout &&
test_cmp_config -C repo true core.sparsecheckout &&
check_files repo a
ok 5 - git sparse-checkout init
expecting success of 1091.6 'git sparse-checkout init in empty repo':
test_when_finished rm -rf empty-repo blank-template &&
git init --template= empty-repo &&
git -C empty-repo sparse-checkout init
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1091-sparse-checkout-builtin/empty-repo/.git/
ok 6 - git sparse-checkout init in empty repo
expecting success of 1091.7 'git sparse-checkout list after init':
git -C repo sparse-checkout list >actual &&
cat >expect <<-\EOF &&
/*
!/*/
EOF
test_cmp expect actual
ok 7 - git sparse-checkout list after init
expecting success of 1091.8 'init with existing sparse-checkout':
echo "*folder*" >> repo/.git/info/sparse-checkout &&
git -C repo sparse-checkout init &&
cat >expect <<-\EOF &&
/*
!/*/
*folder*
EOF
test_cmp expect repo/.git/info/sparse-checkout &&
check_files repo a folder1 folder2
ok 8 - init with existing sparse-checkout
expecting success of 1091.9 'clone --sparse':
git clone --sparse "file://$(pwd)/repo" clone &&
git -C clone sparse-checkout reapply --no-cone &&
git -C clone sparse-checkout list >actual &&
cat >expect <<-\EOF &&
/*
!/*/
EOF
test_cmp expect actual &&
check_files clone a
Cloning into 'clone'...
ok 9 - clone --sparse
expecting success of 1091.10 'switching to cone mode with non-cone mode patterns':
git init bad-patterns &&
(
cd bad-patterns &&
git sparse-checkout init --no-cone &&
git sparse-checkout add dir &&
git config --worktree core.sparseCheckoutCone true &&
test_must_fail git sparse-checkout add dir 2>err &&
grep "existing sparse-checkout patterns do not use cone mode" err
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1091-sparse-checkout-builtin/bad-patterns/.git/
fatal: existing sparse-checkout patterns do not use cone mode
ok 10 - switching to cone mode with non-cone mode patterns
expecting success of 1091.11 'interaction with clone --no-checkout (unborn index)':
git clone --no-checkout "file://$(pwd)/repo" clone_no_checkout &&
git -C clone_no_checkout sparse-checkout init --cone &&
git -C clone_no_checkout sparse-checkout set folder1 &&
git -C clone_no_checkout sparse-checkout list >actual &&
cat >expect <<-\EOF &&
folder1
EOF
test_cmp expect actual &&
# nothing checked out, expect "No such file or directory"
! ls clone_no_checkout/* >actual &&
test_must_be_empty actual &&
test_path_is_missing clone_no_checkout/.git/index &&
# No branch is checked out until we manually switch to one
git -C clone_no_checkout switch main &&
test_path_is_file clone_no_checkout/.git/index &&
check_files clone_no_checkout a folder1
Cloning into 'clone_no_checkout'...
ls: cannot access 'clone_no_checkout/*': No such file or directory
Already on 'main'
Your branch is up to date with 'origin/main'.
ok 11 - interaction with clone --no-checkout (unborn index)
expecting success of 1091.12 'set enables config':
git init worktree-config &&
(
cd worktree-config &&
test_commit test file &&
test_path_is_missing .git/config.worktree &&
git sparse-checkout set nothing &&
test_path_is_file .git/config.worktree &&
test_cmp_config true core.sparseCheckout
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1091-sparse-checkout-builtin/worktree-config/.git/
[main (root-commit) 236e830] test
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
ok 12 - set enables config
expecting success of 1091.13 'set sparse-checkout using builtin':
git -C repo sparse-checkout set "/*" "!/*/" "*folder*" &&
cat >expect <<-\EOF &&
/*
!/*/
*folder*
EOF
git -C repo sparse-checkout list >actual &&
test_cmp expect actual &&
test_cmp expect repo/.git/info/sparse-checkout &&
check_files repo a folder1 folder2
ok 13 - set sparse-checkout using builtin
expecting success of 1091.14 'set sparse-checkout using --stdin':
cat >expect <<-\EOF &&
/*
!/*/
/folder1/
/folder2/
EOF
git -C repo sparse-checkout set --stdin <expect &&
git -C repo sparse-checkout list >actual &&
test_cmp expect actual &&
test_cmp expect repo/.git/info/sparse-checkout &&
check_files repo "a folder1 folder2"
ok 14 - set sparse-checkout using --stdin
expecting success of 1091.15 'add to sparse-checkout':
cat repo/.git/info/sparse-checkout >old &&
test_when_finished cp old repo/.git/info/sparse-checkout &&
cat >add <<-\EOF &&
pattern1
/folder1/
pattern2
EOF
cat old >expect &&
cat add >>expect &&
git -C repo sparse-checkout add --stdin <add &&
git -C repo sparse-checkout list >actual &&
test_cmp expect actual &&
test_cmp expect repo/.git/info/sparse-checkout &&
check_files repo "a folder1 folder2"
ok 15 - add to sparse-checkout
expecting success of 1091.16 'worktree: add copies sparse-checkout patterns':
cat repo/.git/info/sparse-checkout >old &&
test_when_finished cp old repo/.git/info/sparse-checkout &&
test_when_finished git -C repo worktree remove ../worktree &&
git -C repo sparse-checkout set --no-cone "/*" &&
git -C repo worktree add --quiet ../worktree 2>err &&
test_must_be_empty err &&
new="$(git -C worktree rev-parse --git-path info/sparse-checkout)" &&
test_path_is_file "$new" &&
test_cmp repo/.git/info/sparse-checkout "$new" &&
git -C worktree sparse-checkout set --cone &&
test_cmp_config -C worktree true core.sparseCheckoutCone &&
test_must_fail git -C repo core.sparseCheckoutCone
git: 'core.sparseCheckoutCone' is not a git command. See 'git --help'.
ok 16 - worktree: add copies sparse-checkout patterns
expecting success of 1091.17 'cone mode: match patterns':
git -C repo config --worktree core.sparseCheckoutCone true &&
rm -rf repo/a repo/folder1 repo/folder2 &&
git -C repo read-tree -mu HEAD 2>err &&
test_i18ngrep ! "disabling cone patterns" err &&
git -C repo reset --hard &&
check_files repo a folder1 folder2
HEAD is now at ebf8b57 initial commit
ok 17 - cone mode: match patterns
expecting success of 1091.18 'cone mode: warn on bad pattern':
test_when_finished mv sparse-checkout repo/.git/info/ &&
cp repo/.git/info/sparse-checkout . &&
echo "!/deep/deeper/*/" >>repo/.git/info/sparse-checkout &&
git -C repo read-tree -mu HEAD 2>err &&
test_i18ngrep "unrecognized negative pattern" err
warning: unrecognized negative pattern: '/deep/deeper/*'
warning: unrecognized negative pattern: '/deep/deeper/*'
ok 18 - cone mode: warn on bad pattern
expecting success of 1091.19 'sparse-checkout disable':
test_when_finished rm -rf repo/.git/info/sparse-checkout &&
git -C repo sparse-checkout disable &&
test_path_is_file repo/.git/info/sparse-checkout &&
git -C repo config --list >config &&
test_must_fail git config core.sparseCheckout &&
check_files repo a deep folder1 folder2
ok 19 - sparse-checkout disable
expecting success of 1091.20 'sparse-index enabled and disabled':
git -C repo sparse-checkout init --cone --sparse-index &&
test_cmp_config -C repo true index.sparse &&
git -C repo ls-files --sparse >sparse &&
git -C repo sparse-checkout disable &&
git -C repo ls-files --sparse >full &&
cat >expect <<-\EOF &&
@@ -1,4 +1,7 @@
a
-deep/
-folder1/
-folder2/
+deep/a
+deep/deeper1/a
+deep/deeper1/deepest/a
+deep/deeper2/a
+folder1/a
+folder2/a
EOF
diff -u sparse full | tail -n +3 >actual &&
test_cmp expect actual &&
git -C repo config --list >config &&
test_cmp_config -C repo false index.sparse
ok 20 - sparse-index enabled and disabled
expecting success of 1091.21 'cone mode: init and set':
git -C repo sparse-checkout init --cone &&
git -C repo config --list >config &&
test_i18ngrep "core.sparsecheckoutcone=true" config &&
list_files repo >dir &&
echo a >expect &&
test_cmp expect dir &&
git -C repo sparse-checkout set deep/deeper1/deepest/ 2>err &&
test_must_be_empty err &&
check_files repo a deep &&
check_files repo/deep a deeper1 &&
check_files repo/deep/deeper1 a deepest &&
cat >expect <<-\EOF &&
/*
!/*/
/deep/
!/deep/*/
/deep/deeper1/
!/deep/deeper1/*/
/deep/deeper1/deepest/
EOF
test_cmp expect repo/.git/info/sparse-checkout &&
git -C repo sparse-checkout set --stdin 2>err <<-\EOF &&
folder1
folder2
EOF
test_must_be_empty err &&
check_files repo a folder1 folder2
core.sparsecheckoutcone=true
ok 21 - cone mode: init and set
expecting success of 1091.22 'cone mode: list':
cat >expect <<-\EOF &&
folder1
folder2
EOF
git -C repo sparse-checkout set --stdin <expect &&
git -C repo sparse-checkout list >actual 2>err &&
test_must_be_empty err &&
test_cmp expect actual
ok 22 - cone mode: list
expecting success of 1091.23 'cone mode: set with nested folders':
git -C repo sparse-checkout set deep deep/deeper1/deepest 2>err &&
test_line_count = 0 err &&
cat >expect <<-\EOF &&
/*
!/*/
/deep/
EOF
test_cmp repo/.git/info/sparse-checkout expect
ok 23 - cone mode: set with nested folders
expecting success of 1091.24 'cone mode: add independent path':
git -C repo sparse-checkout set deep/deeper1 &&
git -C repo sparse-checkout add folder1 &&
cat >expect <<-\EOF &&
/*
!/*/
/deep/
!/deep/*/
/deep/deeper1/
/folder1/
EOF
test_cmp expect repo/.git/info/sparse-checkout &&
check_files repo a deep folder1
ok 24 - cone mode: add independent path
expecting success of 1091.25 'cone mode: add sibling path':
git -C repo sparse-checkout set deep/deeper1 &&
git -C repo sparse-checkout add deep/deeper2 &&
cat >expect <<-\EOF &&
/*
!/*/
/deep/
!/deep/*/
/deep/deeper1/
/deep/deeper2/
EOF
test_cmp expect repo/.git/info/sparse-checkout &&
check_files repo a deep
ok 25 - cone mode: add sibling path
expecting success of 1091.26 'cone mode: add parent path':
git -C repo sparse-checkout set deep/deeper1 folder1 &&
git -C repo sparse-checkout add deep &&
cat >expect <<-\EOF &&
/*
!/*/
/deep/
/folder1/
EOF
test_cmp expect repo/.git/info/sparse-checkout &&
check_files repo a deep folder1
ok 26 - cone mode: add parent path
expecting success of 1091.27 'not-up-to-date does not block rest of sparsification':
test_when_finished git -C repo sparse-checkout disable &&
test_when_finished git -C repo reset --hard &&
git -C repo sparse-checkout set deep &&
echo update >repo/deep/deeper2/a &&
cp repo/.git/info/sparse-checkout expect &&
test_write_lines "!/deep/*/" "/deep/deeper1/" >>expect &&
git -C repo sparse-checkout set deep/deeper1 2>err &&
test_i18ngrep "The following paths are not up to date" err &&
test_cmp expect repo/.git/info/sparse-checkout &&
check_files repo/deep a deeper1 deeper2 &&
check_files repo/deep/deeper1 a deepest &&
check_files repo/deep/deeper1/deepest a &&
check_files repo/deep/deeper2 a
warning: The following paths are not up to date and were left despite sparse patterns:
HEAD is now at ebf8b57 initial commit
ok 27 - not-up-to-date does not block rest of sparsification
expecting success of 1091.28 'revert to old sparse-checkout on empty update':
git init empty-test &&
(
echo >file &&
git add file &&
git commit -m "test" &&
git sparse-checkout set nothing 2>err &&
test_i18ngrep ! "Sparse checkout leaves no entry on working directory" err &&
test_i18ngrep ! ".git/index.lock" err &&
git sparse-checkout set --no-cone file
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1091-sparse-checkout-builtin/empty-test/.git/
[main (root-commit) d402fe2] test
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
warning: pass a leading slash before paths such as 'file' if you want a single file (see NON-CONE PROBLEMS in the git-sparse-checkout manual).
ok 28 - revert to old sparse-checkout on empty update
expecting success of 1091.29 'fail when lock is taken':
test_when_finished rm -rf repo/.git/info/sparse-checkout.lock &&
touch repo/.git/info/sparse-checkout.lock &&
test_must_fail git -C repo sparse-checkout set deep 2>err &&
test_i18ngrep "Unable to create .*\.lock" err
fatal: Unable to create '/<<PKGBUILDDIR>>/t/trash directory.t1091-sparse-checkout-builtin/repo/.git/info/sparse-checkout.lock': File exists.
ok 29 - fail when lock is taken
expecting success of 1091.30 '.gitignore should not warn about cone mode':
git -C repo config --worktree core.sparseCheckoutCone true &&
echo "**/bin/*" >repo/.gitignore &&
git -C repo reset --hard 2>err &&
test_i18ngrep ! "disabling cone patterns" err
HEAD is now at ebf8b57 initial commit
ok 30 - .gitignore should not warn about cone mode
expecting success of 1091.31 'sparse-checkout (init|set|disable) warns with dirty status':
git clone repo dirty &&
echo dirty >dirty/folder1/a &&
git -C dirty sparse-checkout init --no-cone 2>err &&
test_i18ngrep "warning.*The following paths are not up to date" err &&
git -C dirty sparse-checkout set /folder2/* /deep/deeper1/* 2>err &&
test_i18ngrep "warning.*The following paths are not up to date" err &&
test_path_is_file dirty/folder1/a &&
git -C dirty sparse-checkout disable 2>err &&
test_must_be_empty err &&
git -C dirty reset --hard &&
git -C dirty sparse-checkout init --no-cone &&
git -C dirty sparse-checkout set /folder2/* /deep/deeper1/* &&
test_path_is_missing dirty/folder1/a &&
git -C dirty sparse-checkout disable &&
test_path_is_file dirty/folder1/a
Cloning into 'dirty'...
done.
warning: The following paths are not up to date and were left despite sparse patterns:
warning: The following paths are not up to date and were left despite sparse patterns:
HEAD is now at ebf8b57 initial commit
ok 31 - sparse-checkout (init|set|disable) warns with dirty status
expecting success of 1091.32 'sparse-checkout (init|set|disable) warns with unmerged status':
git clone repo unmerged &&
cat >input <<-EOF &&
0 $ZERO_OID folder1/a
100644 $(git -C unmerged rev-parse HEAD:folder1/a) 1 folder1/a
EOF
git -C unmerged update-index --index-info <input &&
git -C unmerged sparse-checkout init --no-cone 2>err &&
test_i18ngrep "warning.*The following paths are unmerged" err &&
git -C unmerged sparse-checkout set /folder2/* /deep/deeper1/* 2>err &&
test_i18ngrep "warning.*The following paths are unmerged" err &&
test_path_is_file dirty/folder1/a &&
git -C unmerged sparse-checkout disable 2>err &&
test_i18ngrep "warning.*The following paths are unmerged" err &&
git -C unmerged reset --hard &&
git -C unmerged sparse-checkout init --no-cone &&
git -C unmerged sparse-checkout set /folder2/* /deep/deeper1/* &&
git -C unmerged sparse-checkout disable
Cloning into 'unmerged'...
done.
warning: The following paths are unmerged and were left despite sparse patterns:
warning: The following paths are unmerged and were left despite sparse patterns:
warning: The following paths are unmerged and were left despite sparse patterns:
HEAD is now at ebf8b57 initial commit
ok 32 - sparse-checkout (init|set|disable) warns with unmerged status
checking known breakage of 1091.33 'sparse-checkout reapply':
git clone repo tweak &&
echo dirty >tweak/deep/deeper2/a &&
cat >input <<-EOF &&
0 $ZERO_OID folder1/a
100644 $(git -C tweak rev-parse HEAD:folder1/a) 1 folder1/a
EOF
git -C tweak update-index --index-info <input &&
git -C tweak sparse-checkout init --cone 2>err &&
test_i18ngrep "warning.*The following paths are not up to date" err &&
test_i18ngrep "warning.*The following paths are unmerged" err &&
git -C tweak sparse-checkout set folder2 deep/deeper1 2>err &&
test_i18ngrep "warning.*The following paths are not up to date" err &&
test_i18ngrep "warning.*The following paths are unmerged" err &&
git -C tweak sparse-checkout reapply 2>err &&
test_i18ngrep "warning.*The following paths are not up to date" err &&
test_path_is_file tweak/deep/deeper2/a &&
test_i18ngrep "warning.*The following paths are unmerged" err &&
test_path_is_file tweak/folder1/a &&
git -C tweak checkout HEAD deep/deeper2/a &&
git -C tweak sparse-checkout reapply 2>err &&
test_i18ngrep ! "warning.*The following paths are not up to date" err &&
test_path_is_missing tweak/deep/deeper2/a &&
test_i18ngrep "warning.*The following paths are unmerged" err &&
test_path_is_file tweak/folder1/a &&
# NEEDSWORK: We are asking to update a file outside of the
# sparse-checkout cone, but this is no longer allowed.
git -C tweak add folder1/a &&
git -C tweak sparse-checkout reapply 2>err &&
test_must_be_empty err &&
test_path_is_missing tweak/deep/deeper2/a &&
test_path_is_missing tweak/folder1/a &&
git -C tweak sparse-checkout disable
Cloning into 'tweak'...
done.
warning: The following paths are not up to date and were left despite sparse patterns:
warning: The following paths are unmerged and were left despite sparse patterns:
warning: The following paths are not up to date and were left despite sparse patterns:
warning: The following paths are unmerged and were left despite sparse patterns:
warning: The following paths are not up to date and were left despite sparse patterns:
warning: The following paths are unmerged and were left despite sparse patterns:
Updated 1 path from 5b6118d
warning: The following paths are unmerged and were left despite sparse patterns:
The following paths and/or pathspecs matched paths that exist
outside of your sparse-checkout definition, so will not be
updated in the index:
folder1/a
hint: If you intend to update such entries, try one of the following:
hint: * Use the --sparse option.
hint: * Disable or modify the sparsity rules.
hint: Disable this message with "git config advice.updateSparsePath false"
not ok 33 - sparse-checkout reapply # TODO known breakage
expecting success of 1091.34 'reapply can handle config options':
git -C repo sparse-checkout init --cone --no-sparse-index &&
git -C repo config --worktree --list >actual &&
cat >expect <<-\EOF &&
core.sparsecheckout=true
core.sparsecheckoutcone=true
index.sparse=false
EOF
test_cmp expect actual &&
git -C repo sparse-checkout reapply --no-cone --no-sparse-index &&
git -C repo config --worktree --list >actual &&
cat >expect <<-\EOF &&
core.sparsecheckout=true
core.sparsecheckoutcone=false
index.sparse=false
EOF
test_cmp expect actual &&
git -C repo sparse-checkout reapply --cone --sparse-index &&
git -C repo config --worktree --list >actual &&
cat >expect <<-\EOF &&
core.sparsecheckout=true
core.sparsecheckoutcone=true
index.sparse=true
EOF
test_cmp expect actual &&
git -C repo sparse-checkout disable
ok 34 - reapply can handle config options
expecting success of 1091.35 'cone mode: set with core.ignoreCase=true':
rm repo/.git/info/sparse-checkout &&
git -C repo sparse-checkout init --cone &&
git -C repo -c core.ignoreCase=true sparse-checkout set folder1 &&
cat >expect <<-\EOF &&
/*
!/*/
/folder1/
EOF
test_cmp expect repo/.git/info/sparse-checkout &&
check_files repo a folder1
ok 35 - cone mode: set with core.ignoreCase=true
expecting success of 1091.36 'interaction with submodules':
git clone repo super &&
(
cd super &&
mkdir modules &&
git -c protocol.file.allow=always \
submodule add ../repo modules/child &&
git add . &&
git commit -m "add submodule" &&
git sparse-checkout init --cone &&
git sparse-checkout set folder1
) &&
check_files super a folder1 modules &&
check_files super/modules/child a deep folder1 folder2
Cloning into 'super'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1091-sparse-checkout-builtin/super/modules/child'...
done.
[main 7bdd197] add submodule
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 modules/child
warning: unable to rmdir 'modules/child': Directory not empty
warning: unable to rmdir 'modules/child': Directory not empty
ok 36 - interaction with submodules
expecting success of 1091.37 'different sparse-checkouts with worktrees':
git -C repo sparse-checkout set --cone deep folder1 &&
git -C repo worktree add --detach ../worktree &&
check_files worktree "a deep folder1" &&
git -C repo sparse-checkout set --cone folder1 &&
git -C worktree sparse-checkout set --cone deep/deeper1 &&
check_files repo "a folder1" &&
check_files worktree "a deep"
Preparing worktree (detached HEAD ebf8b57)
HEAD is now at ebf8b57 initial commit
ok 37 - different sparse-checkouts with worktrees
expecting success of 1091.38 'set using filename keeps file on-disk':
git -C repo sparse-checkout set --skip-checks a deep &&
cat >expect <<-\EOF &&
/*
!/*/
/a/
/deep/
EOF
test_cmp expect repo/.git/info/sparse-checkout &&
check_files repo a deep
ok 38 - set using filename keeps file on-disk
expecting success of 1091.39 'pattern-checks: /A/**':
cat >repo/.git/info/sparse-checkout <<-\EOF &&
/*
!/*/
/folder1/**
EOF
check_read_tree_errors repo "a folder1" "disabling cone pattern matching"
warning: disabling cone pattern matching
warning: disabling cone pattern matching
ok 39 - pattern-checks: /A/**
expecting success of 1091.40 'pattern-checks: /A/**/B/':
cat >repo/.git/info/sparse-checkout <<-\EOF &&
/*
!/*/
/deep/**/deepest
EOF
check_read_tree_errors repo "a deep" "disabling cone pattern matching" &&
check_files repo/deep "deeper1" &&
check_files repo/deep/deeper1 "deepest"
warning: disabling cone pattern matching
warning: disabling cone pattern matching
ok 40 - pattern-checks: /A/**/B/
expecting success of 1091.41 'pattern-checks: too short':
cat >repo/.git/info/sparse-checkout <<-\EOF &&
/*
!/*/
/
EOF
check_read_tree_errors repo "a" "disabling cone pattern matching"
warning: disabling cone pattern matching
ok 41 - pattern-checks: too short
expecting success of 1091.42 'pattern-checks: not too short':
cat >repo/.git/info/sparse-checkout <<-\EOF &&
/*
!/*/
/b/
EOF
git -C repo read-tree -mu HEAD 2>err &&
test_must_be_empty err &&
check_files repo a
ok 42 - pattern-checks: not too short
expecting success of 1091.43 'pattern-checks: trailing "*"':
cat >repo/.git/info/sparse-checkout <<-\EOF &&
/*
!/*/
/a*
EOF
check_read_tree_errors repo "a" "disabling cone pattern matching"
warning: disabling cone pattern matching
ok 43 - pattern-checks: trailing "*"
expecting success of 1091.44 'pattern-checks: starting "*"':
cat >repo/.git/info/sparse-checkout <<-\EOF &&
/*
!/*/
*eep/
EOF
check_read_tree_errors repo "a deep" "disabling cone pattern matching"
warning: disabling cone pattern matching
warning: disabling cone pattern matching
ok 44 - pattern-checks: starting "*"
expecting success of 1091.45 'pattern-checks: non directory pattern':
cat >repo/.git/info/sparse-checkout <<-\EOF &&
/deep/deeper1/a
EOF
check_read_tree_errors repo deep "disabling cone pattern matching" &&
check_files repo/deep deeper1 &&
check_files repo/deep/deeper1 a
warning: disabling cone pattern matching
warning: disabling cone pattern matching
ok 45 - pattern-checks: non directory pattern
expecting success of 1091.46 'pattern-checks: contained glob characters':
for c in "[a]" "\\" "?" "*"
do
cat >repo/.git/info/sparse-checkout <<-EOF &&
/*
!/*/
something$c-else/
EOF
check_read_tree_errors repo "a" "disabling cone pattern matching" || return 1
done
warning: disabling cone pattern matching
warning: disabling cone pattern matching
warning: disabling cone pattern matching
warning: disabling cone pattern matching
warning: disabling cone pattern matching
warning: disabling cone pattern matching
warning: disabling cone pattern matching
warning: disabling cone pattern matching
ok 46 - pattern-checks: contained glob characters
expecting success of 1091.47 'pattern-checks: escaped characters':
git clone repo escaped &&
TREEOID=$(git -C escaped rev-parse HEAD:folder1) &&
NEWTREE=$(git -C escaped mktree <<-EOF
$(git -C escaped ls-tree HEAD)
040000 tree $TREEOID zbad\\dir
040000 tree $TREEOID zdoes*exist
040000 tree $TREEOID zglob[!a]?
EOF
) &&
COMMIT=$(git -C escaped commit-tree $NEWTREE -p HEAD) &&
git -C escaped reset --hard $COMMIT &&
check_files escaped "a deep folder1 folder2 zbad\\dir zdoes*exist" zglob[!a]? &&
git -C escaped sparse-checkout init --cone &&
git -C escaped sparse-checkout set --skip-checks zbad\\dir/bogus "zdoes*not*exist" "zdoes*exist" "zglob[!a]?" &&
cat >expect <<-\EOF &&
/*
!/*/
/zbad\\dir/
!/zbad\\dir/*/
/zbad\\dir/bogus/
/zdoes\*exist/
/zdoes\*not\*exist/
/zglob\[!a]\?/
EOF
test_cmp expect escaped/.git/info/sparse-checkout &&
check_read_tree_errors escaped "a zbad\\dir zdoes*exist zglob[!a]?" &&
git -C escaped ls-tree -d --name-only HEAD >list-expect &&
git -C escaped sparse-checkout set --stdin <list-expect &&
cat >expect <<-\EOF &&
/*
!/*/
/deep/
/folder1/
/folder2/
/zbad\\dir/
/zdoes\*exist/
/zglob\[!a]\?/
EOF
test_cmp expect escaped/.git/info/sparse-checkout &&
check_files escaped "a deep folder1 folder2 zbad\\dir zdoes*exist" zglob[!a]? &&
git -C escaped sparse-checkout list >list-actual &&
test_cmp list-expect list-actual
Cloning into 'escaped'...
done.
HEAD is now at deac45b
ok 47 - pattern-checks: escaped characters
ok 48 # skip cone mode replaces backslashes with slashes (missing MINGW)
expecting success of 1091.49 'cone mode clears ignored subdirectories':
rm repo/.git/info/sparse-checkout &&
git -C repo sparse-checkout init --cone &&
git -C repo sparse-checkout set deep/deeper1 &&
cat >repo/.gitignore <<-\EOF &&
obj/
*.o
EOF
git -C repo add .gitignore &&
git -C repo commit -m ".gitignore" &&
mkdir -p repo/obj repo/folder1/obj repo/deep/deeper2/obj &&
for file in folder1/obj/a obj/a folder1/file.o folder1.o \
deep/deeper2/obj/a deep/deeper2/file.o file.o
do
echo ignored >repo/$file || return 1
done &&
git -C repo status --porcelain=v2 >out &&
test_must_be_empty out &&
git -C repo sparse-checkout reapply &&
test_path_is_missing repo/folder1 &&
test_path_is_missing repo/deep/deeper2 &&
test_path_is_dir repo/obj &&
test_path_is_file repo/file.o &&
git -C repo status --porcelain=v2 >out &&
test_must_be_empty out &&
git -C repo sparse-checkout set deep/deeper2 &&
test_path_is_missing repo/deep/deeper1 &&
test_path_is_dir repo/deep/deeper2 &&
test_path_is_dir repo/obj &&
test_path_is_file repo/file.o &&
>repo/deep/deeper2/ignored.o &&
>repo/deep/deeper2/untracked &&
# When an untracked file is in the way, all untracked files
# (even ignored files) are preserved.
git -C repo sparse-checkout set folder1 2>err &&
grep "contains untracked files" err &&
test_path_is_file repo/deep/deeper2/ignored.o &&
test_path_is_file repo/deep/deeper2/untracked &&
# The rest of the cone matches expectation
test_path_is_missing repo/deep/deeper1 &&
test_path_is_dir repo/obj &&
test_path_is_file repo/file.o &&
git -C repo status --porcelain=v2 >out &&
echo "? deep/deeper2/untracked" >expect &&
test_cmp expect out
[main ab507a5] .gitignore
Author: A U Thor <author@example.com>
1 file changed, 2 insertions(+)
create mode 100644 .gitignore
warning: directory 'deep/' contains untracked files, but is not in the sparse-checkout cone
ok 49 - cone mode clears ignored subdirectories
expecting success of 1091.50 'malformed cone-mode patterns':
git -C repo sparse-checkout init --cone &&
mkdir -p repo/foo/bar &&
touch repo/foo/bar/x repo/foo/y &&
cat >repo/.git/info/sparse-checkout <<-\EOF &&
/*
!/*/
/foo/
!/foo/*/
/foo/\*/
EOF
# Listing the patterns will notice the duplicate pattern and
# emit a warning. It will list the patterns directly instead
# of using the cone-mode translation to a set of directories.
git -C repo sparse-checkout list >actual 2>err &&
test_cmp repo/.git/info/sparse-checkout actual &&
grep "warning: your sparse-checkout file may have issues: pattern .* is repeated" err &&
grep "warning: disabling cone pattern matching" err
warning: directory 'deep/' contains untracked files, but is not in the sparse-checkout cone
warning: your sparse-checkout file may have issues: pattern '/foo/\*' is repeated
warning: disabling cone pattern matching
ok 50 - malformed cone-mode patterns
expecting success of 1091.51 'set from subdir pays attention to prefix':
git -C repo sparse-checkout disable &&
git -C repo/deep sparse-checkout set --cone deeper2 ../folder1 &&
git -C repo sparse-checkout list >actual &&
cat >expect <<-\EOF &&
deep/deeper2
folder1
EOF
test_cmp expect actual
ok 51 - set from subdir pays attention to prefix
expecting success of 1091.52 'add from subdir pays attention to prefix':
git -C repo sparse-checkout set --cone deep/deeper2 &&
git -C repo/deep sparse-checkout add deeper1/deepest ../folder1 &&
git -C repo sparse-checkout list >actual &&
cat >expect <<-\EOF &&
deep/deeper1/deepest
deep/deeper2
folder1
EOF
test_cmp expect actual
ok 52 - add from subdir pays attention to prefix
expecting success of 1091.53 'set from subdir in non-cone mode throws an error':
git -C repo sparse-checkout disable &&
test_must_fail git -C repo/deep sparse-checkout set --no-cone deeper2 ../folder1 2>error &&
grep "run from the toplevel directory in non-cone mode" error
fatal: please run from the toplevel directory in non-cone mode
ok 53 - set from subdir in non-cone mode throws an error
expecting success of 1091.54 'set from subdir in non-cone mode throws an error':
git -C repo sparse-checkout set --no-cone deep/deeper2 &&
test_must_fail git -C repo/deep sparse-checkout add deeper1/deepest ../folder1 2>error &&
grep "run from the toplevel directory in non-cone mode" error
fatal: please run from the toplevel directory in non-cone mode
ok 54 - set from subdir in non-cone mode throws an error
expecting success of 1091.55 'by default, cone mode will error out when passed files':
git -C repo sparse-checkout reapply --cone &&
test_must_fail git -C repo sparse-checkout add .gitignore 2>error &&
grep ".gitignore.*is not a directory" error
warning: unrecognized pattern: 'deep/deeper2'
warning: disabling cone pattern matching
warning: unrecognized pattern: 'deep/deeper2'
warning: disabling cone pattern matching
fatal: '.gitignore' is not a directory; to treat it as a directory anyway, rerun with --skip-checks
ok 55 - by default, cone mode will error out when passed files
expecting success of 1091.56 'by default, non-cone mode will warn on individual files':
git -C repo sparse-checkout reapply --no-cone &&
git -C repo sparse-checkout add .gitignore 2>warning &&
grep "pass a leading slash before paths.*if you want a single file" warning
warning: pass a leading slash before paths such as '.gitignore' if you want a single file (see NON-CONE PROBLEMS in the git-sparse-checkout manual).
ok 56 - by default, non-cone mode will warn on individual files
# still have 1 known breakage(s)
# passed all remaining 55 test(s)
1..56
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1100-commit-tree-options.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1300-config.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1300-config/.git/
expecting success of 1300.1 'clear default config':
rm -f .git/config
ok 1 - clear default config
expecting success of 1300.2 'initial':
git config section.penguin "little blue" &&
test_cmp expect .git/config
ok 2 - initial
expecting success of 1300.3 'mixed case':
git config Section.Movie BadPhysics &&
test_cmp expect .git/config
ok 3 - mixed case
expecting success of 1300.4 'similar section':
git config Sections.WhatEver Second &&
test_cmp expect .git/config
ok 4 - similar section
expecting success of 1300.5 'uppercase section':
git config SECTION.UPPERCASE true &&
test_cmp expect .git/config
ok 5 - uppercase section
expecting success of 1300.6 'replace with non-match':
git config section.penguin kingpin !blue
ok 6 - replace with non-match
expecting success of 1300.7 'replace with non-match (actually matching)':
git config section.penguin "very blue" !kingpin
ok 7 - replace with non-match (actually matching)
expecting success of 1300.8 'non-match result': test_cmp expect .git/config
ok 8 - non-match result
expecting success of 1300.9 'find mixed-case key by canonical name':
test_cmp_config Second sections.whatever
ok 9 - find mixed-case key by canonical name
expecting success of 1300.10 'find mixed-case key by non-canonical name':
test_cmp_config Second SeCtIoNs.WhAtEvEr
ok 10 - find mixed-case key by non-canonical name
expecting success of 1300.11 'subsections are not canonicalized by git-config':
cat >>.git/config <<-\EOF &&
[section.SubSection]
key = one
[section "SubSection"]
key = two
EOF
test_cmp_config one section.subsection.key &&
test_cmp_config two section.SubSection.key
ok 11 - subsections are not canonicalized by git-config
expecting success of 1300.12 'unset with cont. lines':
git config --unset beta.baz
ok 12 - unset with cont. lines
expecting success of 1300.13 'unset with cont. lines is correct': test_cmp expect .git/config
ok 13 - unset with cont. lines is correct
expecting success of 1300.14 'multiple unset':
git config --unset-all beta.haha
ok 14 - multiple unset
expecting success of 1300.15 'multiple unset is correct':
test_cmp expect .git/config
ok 15 - multiple unset is correct
expecting success of 1300.16 '--replace-all missing value':
test_must_fail git config --replace-all beta.haha &&
test_cmp .git/config2 .git/config
error: wrong number of arguments, should be from 2 to 3
usage: git config [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> with --get, use default value when missing entry
ok 16 - --replace-all missing value
expecting success of 1300.17 '--replace-all':
git config --replace-all beta.haha gamma
ok 17 - --replace-all
expecting success of 1300.18 'all replaced':
test_cmp expect .git/config
ok 18 - all replaced
expecting success of 1300.19 'really mean test':
git config beta.haha alpha &&
test_cmp expect .git/config
ok 19 - really mean test
expecting success of 1300.20 'really really mean test':
git config nextsection.nonewline wow &&
test_cmp expect .git/config
ok 20 - really really mean test
expecting success of 1300.21 'get value':
test_cmp_config alpha beta.haha
ok 21 - get value
expecting success of 1300.22 'unset':
git config --unset beta.haha &&
test_cmp expect .git/config
ok 22 - unset
expecting success of 1300.23 'multivar':
git config nextsection.NoNewLine "wow2 for me" "for me$" &&
test_cmp expect .git/config
ok 23 - multivar
expecting success of 1300.24 'non-match':
git config --get nextsection.nonewline !for
wow
ok 24 - non-match
expecting success of 1300.25 'non-match value':
test_cmp_config wow --get nextsection.nonewline !for
ok 25 - non-match value
expecting success of 1300.26 'multi-valued get returns final one':
test_cmp_config "wow2 for me" --get nextsection.nonewline
ok 26 - multi-valued get returns final one
expecting success of 1300.27 'multi-valued get-all returns all':
cat >expect <<-\EOF &&
wow
wow2 for me
EOF
git config --get-all nextsection.nonewline >actual &&
test_cmp expect actual
ok 27 - multi-valued get-all returns all
expecting success of 1300.28 'multivar replace':
git config nextsection.nonewline "wow3" "wow$" &&
test_cmp expect .git/config
ok 28 - multivar replace
expecting success of 1300.29 'ambiguous unset':
test_must_fail git config --unset nextsection.nonewline
warning: nextsection.nonewline has multiple values
ok 29 - ambiguous unset
expecting success of 1300.30 'invalid unset':
test_must_fail git config --unset somesection.nonewline
ok 30 - invalid unset
expecting success of 1300.31 'multivar unset':
git config --unset nextsection.nonewline "wow3$" &&
test_cmp expect .git/config
ok 31 - multivar unset
expecting success of 1300.32 'invalid key': test_must_fail git config inval.2key blabla
error: invalid key: inval.2key
ok 32 - invalid key
expecting success of 1300.33 'correct key': git config 123456.a123 987
ok 33 - correct key
expecting success of 1300.34 'hierarchical section':
git config Version.1.2.3eX.Alpha beta
ok 34 - hierarchical section
expecting success of 1300.35 'hierarchical section value':
test_cmp expect .git/config
ok 35 - hierarchical section value
expecting success of 1300.36 'working --list':
git config --list > output &&
test_cmp expect output
ok 36 - working --list
expecting success of 1300.37 '--list without repo produces empty output':
git --git-dir=nonexistent config --list >output &&
test_must_be_empty output
ok 37 - --list without repo produces empty output
expecting success of 1300.38 '--name-only --list':
git config --name-only --list >output &&
test_cmp expect output
ok 38 - --name-only --list
expecting success of 1300.39 '--get-regexp':
git config --get-regexp in >output &&
test_cmp expect output
ok 39 - --get-regexp
expecting success of 1300.40 '--name-only --get-regexp':
git config --name-only --get-regexp in >output &&
test_cmp expect output
ok 40 - --name-only --get-regexp
expecting success of 1300.41 '--add':
git config --add nextsection.nonewline "wow4 for you" &&
git config --get-all nextsection.nonewline > output &&
test_cmp expect output
ok 41 - --add
expecting success of 1300.42 'get variable with no value':
git config --get novalue.variable ^$
ok 42 - get variable with no value
expecting success of 1300.43 'get variable with empty value':
git config --get emptyvalue.variable ^$
ok 43 - get variable with empty value
expecting success of 1300.44 'get-regexp variable with no value':
git config --get-regexp novalue > output &&
test_cmp expect output
ok 44 - get-regexp variable with no value
expecting success of 1300.45 'get-regexp --bool variable with no value':
git config --bool --get-regexp novalue > output &&
test_cmp expect output
ok 45 - get-regexp --bool variable with no value
expecting success of 1300.46 'get-regexp variable with empty value':
git config --get-regexp emptyvalue > output &&
test_cmp expect output
ok 46 - get-regexp variable with empty value
expecting success of 1300.47 'get bool variable with no value':
git config --bool novalue.variable > output &&
test_cmp expect output
ok 47 - get bool variable with no value
expecting success of 1300.48 'get bool variable with empty value':
git config --bool emptyvalue.variable > output &&
test_cmp expect output
ok 48 - get bool variable with empty value
expecting success of 1300.49 'no arguments, but no crash':
test_must_fail git config >output 2>&1 &&
test_i18ngrep usage output
usage: git config [<options>]
ok 49 - no arguments, but no crash
expecting success of 1300.50 'new section is partial match of another':
git config a.x y &&
test_cmp expect .git/config
ok 50 - new section is partial match of another
expecting success of 1300.51 'new variable inserts into proper section':
git config b.x y &&
git config a.b c &&
test_cmp expect .git/config
ok 51 - new variable inserts into proper section
expecting success of 1300.52 'alternative --file (non-existing file should fail)':
test_must_fail git config --file non-existing-config -l &&
test_must_fail git config --file non-existing-config test.xyzzy
fatal: unable to read config file 'non-existing-config': No such file or directory
ok 52 - alternative --file (non-existing file should fail)
expecting success of 1300.53 'alternative GIT_CONFIG':
GIT_CONFIG=other-config git config --list >output &&
test_cmp expect output
ok 53 - alternative GIT_CONFIG
expecting success of 1300.54 'alternative GIT_CONFIG (--file)':
git config --file other-config --list >output &&
test_cmp expect output
ok 54 - alternative GIT_CONFIG (--file)
expecting success of 1300.55 'alternative GIT_CONFIG (--file=-)':
git config --file - --list <other-config >output &&
test_cmp expect output
ok 55 - alternative GIT_CONFIG (--file=-)
expecting success of 1300.56 'setting a value in stdin is an error':
test_must_fail git config --file - some.value foo
fatal: writing to stdin is not supported
ok 56 - setting a value in stdin is an error
expecting success of 1300.57 'editing stdin is an error':
test_must_fail git config --file - --edit
fatal: editing stdin is not supported
ok 57 - editing stdin is an error
expecting success of 1300.58 'refer config from subdirectory':
mkdir x &&
test_cmp_config -C x strasse --file=../other-config --get ein.bahn
ok 58 - refer config from subdirectory
expecting success of 1300.59 '--set in alternative file':
git config --file=other-config anwohner.park ausweis &&
test_cmp expect other-config
ok 59 - --set in alternative file
expecting success of 1300.60 'rename section':
git config --rename-section branch.eins branch.zwei
ok 60 - rename section
expecting success of 1300.61 'rename succeeded':
test_cmp expect .git/config
ok 61 - rename succeeded
expecting success of 1300.62 'rename non-existing section':
test_must_fail git config --rename-section \
branch."world domination" branch.drei
fatal: no such section: branch.world domination
ok 62 - rename non-existing section
expecting success of 1300.63 'rename succeeded':
test_cmp expect .git/config
ok 63 - rename succeeded
expecting success of 1300.64 'rename another section':
git config --rename-section branch."1 234 blabl/a" branch.drei
ok 64 - rename another section
expecting success of 1300.65 'rename succeeded':
test_cmp expect .git/config
ok 65 - rename succeeded
expecting success of 1300.66 'rename a section with a var on the same line':
git config --rename-section branch.vier branch.zwei
ok 66 - rename a section with a var on the same line
expecting success of 1300.67 'rename succeeded':
test_cmp expect .git/config
ok 67 - rename succeeded
expecting success of 1300.68 'renaming empty section name is rejected':
test_must_fail git config --rename-section branch.zwei ""
error: invalid section name:
ok 68 - renaming empty section name is rejected
expecting success of 1300.69 'renaming to bogus section is rejected':
test_must_fail git config --rename-section branch.zwei "bogus name"
error: invalid section name: bogus name
ok 69 - renaming to bogus section is rejected
expecting success of 1300.70 'renaming a section with a long line':
{
printf "[b]\\n" &&
printf " c = d %1024s [a] e = f\\n" " " &&
printf "[a] g = h\\n"
} >y &&
git config -f y --rename-section a xyz &&
test_must_fail git config -f y b.e
ok 70 - renaming a section with a long line
expecting success of 1300.71 'renaming an embedded section with a long line':
{
printf "[b]\\n" &&
printf " c = d %1024s [a] [foo] e = f\\n" " " &&
printf "[a] g = h\\n"
} >y &&
git config -f y --rename-section a xyz &&
test_must_fail git config -f y foo.e
ok 71 - renaming an embedded section with a long line
expecting success of 1300.72 'renaming a section with an overly-long line':
{
printf "[b]\\n" &&
printf " c = d %525000s e" " " &&
printf "[a] g = h\\n"
} >y &&
test_must_fail git config -f y --rename-section a xyz 2>err &&
grep "refusing to work with overly long line in .y. on line 2" err
error: refusing to work with overly long line in 'y' on line 2
ok 72 - renaming a section with an overly-long line
expecting success of 1300.73 'remove section':
git config --remove-section branch.zwei
ok 73 - remove section
expecting success of 1300.74 'section was removed properly':
test_cmp expect .git/config
ok 74 - section was removed properly
expecting success of 1300.75 'section ending':
rm -f .git/config &&
git config gitcvs.enabled true &&
git config gitcvs.ext.dbname %Ggitcvs1.%a.%m.sqlite &&
git config gitcvs.dbname %Ggitcvs2.%a.%m.sqlite &&
test_cmp expect .git/config
ok 75 - section ending
expecting success of 1300.76 'numbers':
git config kilo.gram 1k &&
git config mega.ton 1m &&
echo 1024 >expect &&
echo 1048576 >>expect &&
git config --int --get kilo.gram >actual &&
git config --int --get mega.ton >>actual &&
test_cmp expect actual
ok 76 - numbers
expecting success of 1300.77 '--int is at least 64 bits':
git config giga.watts 121g &&
echo >expect &&
test_cmp_config 129922760704 --int --get giga.watts
ok 77 - --int is at least 64 bits
expecting success of 1300.78 'invalid unit':
git config aninvalid.unit "1auto" &&
test_cmp_config 1auto aninvalid.unit &&
test_must_fail git config --int --get aninvalid.unit 2>actual &&
test_i18ngrep "bad numeric config value .1auto. for .aninvalid.unit. in file .git/config: invalid unit" actual
fatal: bad numeric config value '1auto' for 'aninvalid.unit' in file .git/config: invalid unit
ok 78 - invalid unit
expecting success of 1300.79 'invalid unit boolean':
git config commit.gpgsign "1true" &&
test_cmp_config 1true commit.gpgsign &&
test_must_fail git config --bool --get commit.gpgsign 2>actual &&
test_i18ngrep "bad boolean config value .1true. for .commit.gpgsign." actual
fatal: bad boolean config value '1true' for 'commit.gpgsign'
ok 79 - invalid unit boolean
expecting success of 1300.80 'line number is reported correctly':
printf "[bool]\n\tvar\n" >invalid &&
test_must_fail git config -f invalid --path bool.var 2>actual &&
test_i18ngrep "line 2" actual
fatal: bad config line 2 in file invalid
ok 80 - line number is reported correctly
expecting success of 1300.81 'invalid stdin config':
echo "[broken" | test_must_fail git config --list --file - >output 2>&1 &&
test_i18ngrep "bad config line 1 in standard input" output
fatal: bad config line 1 in standard input
ok 81 - invalid stdin config
expecting success of 1300.82 'bool':
git config bool.true1 01 &&
git config bool.true2 -1 &&
git config bool.true3 YeS &&
git config bool.true4 true &&
git config bool.false1 000 &&
git config bool.false2 "" &&
git config bool.false3 nO &&
git config bool.false4 FALSE &&
rm -f result &&
for i in 1 2 3 4
do
git config --bool --get bool.true$i >>result &&
git config --bool --get bool.false$i >>result || return 1
done &&
test_cmp expect result
ok 82 - bool
expecting success of 1300.83 'invalid bool (--get)':
git config bool.nobool foobar &&
test_must_fail git config --bool --get bool.nobool
fatal: bad boolean config value 'foobar' for 'bool.nobool'
ok 83 - invalid bool (--get)
expecting success of 1300.84 'invalid bool (set)':
test_must_fail git config --bool bool.nobool foobar
fatal: bad boolean config value 'foobar' for 'bool.nobool'
ok 84 - invalid bool (set)
expecting success of 1300.85 'set --bool':
rm -f .git/config &&
git config --bool bool.true1 01 &&
git config --bool bool.true2 -1 &&
git config --bool bool.true3 YeS &&
git config --bool bool.true4 true &&
git config --bool bool.false1 000 &&
git config --bool bool.false2 "" &&
git config --bool bool.false3 nO &&
git config --bool bool.false4 FALSE &&
test_cmp expect .git/config
ok 85 - set --bool
expecting success of 1300.86 'set --int':
rm -f .git/config &&
git config --int int.val1 01 &&
git config --int int.val2 -1 &&
git config --int int.val3 5m &&
test_cmp expect .git/config
ok 86 - set --int
expecting success of 1300.87 'get --bool-or-int':
cat >.git/config <<-\EOF &&
[bool]
true1
true2 = true
false = false
[int]
int1 = 0
int2 = 1
int3 = -1
EOF
cat >expect <<-\EOF &&
true
true
false
0
1
-1
EOF
{
git config --bool-or-int bool.true1 &&
git config --bool-or-int bool.true2 &&
git config --bool-or-int bool.false &&
git config --bool-or-int int.int1 &&
git config --bool-or-int int.int2 &&
git config --bool-or-int int.int3
} >actual &&
test_cmp expect actual
ok 87 - get --bool-or-int
expecting success of 1300.88 'set --bool-or-int':
rm -f .git/config &&
git config --bool-or-int bool.true1 true &&
git config --bool-or-int bool.false1 false &&
git config --bool-or-int bool.true2 yes &&
git config --bool-or-int bool.false2 no &&
git config --bool-or-int int.int1 0 &&
git config --bool-or-int int.int2 1 &&
git config --bool-or-int int.int3 -1 &&
test_cmp expect .git/config
ok 88 - set --bool-or-int
expecting success of 1300.89 'set --path':
rm -f .git/config &&
git config --path path.home "~/" &&
git config --path path.normal "/dev/null" &&
git config --path path.trailingtilde "foo~" &&
test_cmp expect .git/config
ok 89 - set --path
expecting success of 1300.90 'get --path':
git config --get --path path.home > result &&
git config --get --path path.normal >> result &&
git config --get --path path.trailingtilde >> result &&
test_cmp expect result
ok 90 - get --path
expecting success of 1300.91 'get --path copes with unset $HOME':
(
sane_unset HOME &&
test_must_fail git config --get --path path.home \
>result 2>msg &&
git config --get --path path.normal >>result &&
git config --get --path path.trailingtilde >>result
) &&
test_i18ngrep "[Ff]ailed to expand.*~/" msg &&
test_cmp expect result
fatal: failed to expand user dir in: '~/'
ok 91 - get --path copes with unset $HOME
expecting success of 1300.92 'get --path barfs on boolean variable':
echo "[path]bool" >.git/config &&
test_must_fail git config --get --path path.bool
error: missing value for 'path.bool'
fatal: bad config line 1 in file .git/config
ok 92 - get --path barfs on boolean variable
expecting success of 1300.93 'get --expiry-date':
rel="3.weeks.5.days.00:00" &&
rel_out="$rel ->" &&
cat >.git/config <<-\EOF &&
[date]
valid1 = "3.weeks.5.days 00:00"
valid2 = "Fri Jun 4 15:46:55 2010"
valid3 = "2017/11/11 11:11:11PM"
valid4 = "2017/11/10 09:08:07 PM"
valid5 = "never"
invalid1 = "abc"
EOF
cat >expect <<-EOF &&
$(test-tool date timestamp $rel)
1275666415
1510441871
1510348087
0
EOF
: "work around heredoc parsing bug fixed in dash 0.5.7 (in ec2c84d)" &&
{
echo "$rel_out $(git config --expiry-date date.valid1)" &&
git config --expiry-date date.valid2 &&
git config --expiry-date date.valid3 &&
git config --expiry-date date.valid4 &&
git config --expiry-date date.valid5
} >actual &&
test_cmp expect actual &&
test_must_fail git config --expiry-date date.invalid1
error: 'abc' for 'date.invalid1' is not a valid timestamp
fatal: bad config line 7 in file .git/config
ok 93 - get --expiry-date
expecting success of 1300.94 'get --type=color':
rm .git/config &&
git config foo.color "red" &&
git config --get --type=color foo.color >actual.raw &&
test_decode_color <actual.raw >actual &&
echo "<RED>" >expect &&
test_cmp expect actual
ok 94 - get --type=color
expecting success of 1300.95 'set --type=color':
rm .git/config &&
git config --type=color foo.color "red" &&
test_cmp expect .git/config
ok 95 - set --type=color
expecting success of 1300.96 'get --type=color barfs on non-color':
echo "[foo]bar=not-a-color" >.git/config &&
test_must_fail git config --get --type=color foo.bar
error: invalid color value: not-a-color
fatal: bad config line 1 in file .git/config
ok 96 - get --type=color barfs on non-color
expecting success of 1300.97 'set --type=color barfs on non-color':
test_must_fail git config --type=color foo.color "not-a-color" 2>error &&
test_i18ngrep "cannot parse color" error
fatal: cannot parse color 'not-a-color'
ok 97 - set --type=color barfs on non-color
expecting success of 1300.98 'quoting':
rm -f .git/config &&
git config quote.leading " test" &&
git config quote.ending "test " &&
git config quote.semicolon "test;test" &&
git config quote.hash "test#test" &&
test_cmp expect .git/config
ok 98 - quoting
expecting success of 1300.99 'key with newline':
test_must_fail git config "key.with
newline" 123
error: invalid key: key.with
newline
ok 99 - key with newline
expecting success of 1300.100 'value with newline': git config key.sub value.with\\\
newline
ok 100 - value with newline
expecting success of 1300.101 'value continued on next line':
git config --list > result &&
test_cmp expect result
ok 101 - value continued on next line
expecting success of 1300.102 '--null --list':
git config --null --list >result.raw &&
nul_to_q <result.raw >result &&
echo >>result &&
test_cmp expect result
ok 102 - --null --list
expecting success of 1300.103 '--null --get-regexp':
git config --null --get-regexp "val[0-9]" >result.raw &&
nul_to_q <result.raw >result &&
echo >>result &&
test_cmp expect result
ok 103 - --null --get-regexp
expecting success of 1300.104 'inner whitespace kept verbatim':
git config section.val "foo bar" &&
test_cmp_config "foo bar" section.val
ok 104 - inner whitespace kept verbatim
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 1300.105 'symlinked configuration':
ln -s notyet myconfig &&
git config --file=myconfig test.frotz nitfol &&
test -h myconfig &&
test -f notyet &&
test "z$(git config --file=notyet test.frotz)" = znitfol &&
git config --file=myconfig test.xyzzy rezrov &&
test -h myconfig &&
test -f notyet &&
cat >expect <<-\EOF &&
nitfol
rezrov
EOF
{
git config --file=notyet test.frotz &&
git config --file=notyet test.xyzzy
} >actual &&
test_cmp expect actual
ok 105 - symlinked configuration
expecting success of 1300.106 'symlink to nonexistent configuration':
ln -s doesnotexist linktonada &&
ln -s linktonada linktolinktonada &&
test_must_fail git config --file=linktonada --list &&
test_must_fail git config --file=linktolinktonada --list
fatal: unable to read config file 'linktonada': No such file or directory
fatal: unable to read config file 'linktolinktonada': No such file or directory
ok 106 - symlink to nonexistent configuration
expecting success of 1300.107 'check split_cmdline return':
git config alias.split-cmdline-fix 'echo "' &&
test_must_fail git split-cmdline-fix &&
echo foo > foo &&
git add foo &&
git commit -m 'initial commit' &&
git config branch.main.mergeoptions 'echo "' &&
test_must_fail git merge main
fatal: bad alias.split-cmdline-fix string: unclosed quote
[main (root-commit) fecaf4f] initial commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo
fatal: Bad branch.main.mergeoptions string: unclosed quote
ok 107 - check split_cmdline return
expecting success of 1300.108 'git -c "key=value" support':
cat >expect <<-\EOF &&
value
value
true
EOF
{
git -c section.name=value config section.name &&
git -c foo.CamelCase=value config foo.camelcase &&
git -c foo.flag config --bool foo.flag
} >actual &&
test_cmp expect actual &&
test_must_fail git -c name=value config section.name
error: key does not contain a section: name
fatal: unable to parse command-line config
ok 108 - git -c "key=value" support
expecting success of 1300.109 'git -c can represent empty string':
echo >expect &&
git -c foo.empty= config --path foo.empty >actual &&
test_cmp expect actual
ok 109 - git -c can represent empty string
expecting success of 1300.110 'key sanity-checking':
test_must_fail git config foo=bar &&
test_must_fail git config foo=.bar &&
test_must_fail git config foo.ba=r &&
test_must_fail git config foo.1bar &&
test_must_fail git config foo."ba
z".bar &&
test_must_fail git config . false &&
test_must_fail git config .foo false &&
test_must_fail git config foo. false &&
test_must_fail git config .foo. false &&
git config foo.bar true &&
git config foo."ba =z".bar false
error: key does not contain a section: foo=bar
error: invalid key: foo=.bar
error: invalid key: foo.ba=r
error: invalid key: foo.1bar
error: invalid key (newline): foo.ba
z.bar
error: key does not contain a section: .
error: key does not contain a section: .foo
error: key does not contain variable name: foo.
error: key does not contain variable name: .foo.
ok 110 - key sanity-checking
expecting success of 1300.111 'git -c works with aliases of builtins':
git config alias.checkconfig "-c foo.check=bar config foo.check" &&
echo bar >expect &&
git checkconfig >actual &&
test_cmp expect actual
ok 111 - git -c works with aliases of builtins
expecting success of 1300.112 'aliases can be CamelCased':
test_config alias.CamelCased "rev-parse HEAD" &&
git CamelCased >out &&
git rev-parse HEAD >expect &&
test_cmp expect out
ok 112 - aliases can be CamelCased
expecting success of 1300.113 'git -c does not split values on equals':
echo "value with = in it" >expect &&
git -c section.foo="value with = in it" config section.foo >actual &&
test_cmp expect actual
ok 113 - git -c does not split values on equals
expecting success of 1300.114 'git -c dies on bogus config':
test_must_fail git -c core.bare=foo rev-parse
fatal: bad boolean config value 'foo' for 'core.bare'
ok 114 - git -c dies on bogus config
expecting success of 1300.115 'git -c complains about empty key':
test_must_fail git -c "=foo" rev-parse
error: empty config key
fatal: unable to parse command-line config
ok 115 - git -c complains about empty key
expecting success of 1300.116 'git -c complains about empty key and value':
test_must_fail git -c "" rev-parse
error: empty config key
fatal: unable to parse command-line config
ok 116 - git -c complains about empty key and value
expecting success of 1300.117 'multiple git -c appends config':
test_config alias.x "!git -c x.two=2 config --get-regexp ^x\.*" &&
cat >expect <<-\EOF &&
x.one 1
x.two 2
EOF
git -c x.one=1 x >actual &&
test_cmp expect actual
ok 117 - multiple git -c appends config
expecting success of 1300.118 'last one wins: two level vars':
# sec.var and sec.VAR are the same variable, as the first
# and the last level of a configuration variable name is
# case insensitive.
echo VAL >expect &&
git -c sec.var=val -c sec.VAR=VAL config --get sec.var >actual &&
test_cmp expect actual &&
git -c SEC.var=val -c sec.var=VAL config --get sec.var >actual &&
test_cmp expect actual &&
git -c sec.var=val -c sec.VAR=VAL config --get SEC.var >actual &&
test_cmp expect actual &&
git -c SEC.var=val -c sec.var=VAL config --get sec.VAR >actual &&
test_cmp expect actual
ok 118 - last one wins: two level vars
expecting success of 1300.119 'last one wins: three level vars':
# v.a.r and v.A.r are not the same variable, as the middle
# level of a three-level configuration variable name is
# case sensitive.
echo val >expect &&
git -c v.a.r=val -c v.A.r=VAL config --get v.a.r >actual &&
test_cmp expect actual &&
git -c v.a.r=val -c v.A.r=VAL config --get V.a.R >actual &&
test_cmp expect actual &&
# v.a.r and V.a.R are the same variable, as the first
# and the last level of a configuration variable name is
# case insensitive.
echo VAL >expect &&
git -c v.a.r=val -c v.a.R=VAL config --get v.a.r >actual &&
test_cmp expect actual &&
git -c v.a.r=val -c V.a.r=VAL config --get v.a.r >actual &&
test_cmp expect actual &&
git -c v.a.r=val -c v.a.R=VAL config --get V.a.R >actual &&
test_cmp expect actual &&
git -c v.a.r=val -c V.a.r=VAL config --get V.a.R >actual &&
test_cmp expect actual
ok 119 - last one wins: three level vars
expecting success of 1300.120 'old-fashioned settings are case insensitive':
test_when_finished "rm -f testConfig testConfig_expect testConfig_actual" &&
cat >testConfig_actual <<-EOF &&
[V.A]
r = value1
EOF
q_to_tab >testConfig_expect <<-EOF &&
[V.A]
Qr = value2
EOF
git config -f testConfig_actual "v.a.r" value2 &&
test_cmp testConfig_expect testConfig_actual &&
cat >testConfig_actual <<-EOF &&
[V.A]
r = value1
EOF
q_to_tab >testConfig_expect <<-EOF &&
[V.A]
QR = value2
EOF
git config -f testConfig_actual "V.a.R" value2 &&
test_cmp testConfig_expect testConfig_actual &&
cat >testConfig_actual <<-EOF &&
[V.A]
r = value1
EOF
q_to_tab >testConfig_expect <<-EOF &&
[V.A]
r = value1
Qr = value2
EOF
git config -f testConfig_actual "V.A.r" value2 &&
test_cmp testConfig_expect testConfig_actual &&
cat >testConfig_actual <<-EOF &&
[V.A]
r = value1
EOF
q_to_tab >testConfig_expect <<-EOF &&
[V.A]
r = value1
Qr = value2
EOF
git config -f testConfig_actual "v.A.r" value2 &&
test_cmp testConfig_expect testConfig_actual
ok 120 - old-fashioned settings are case insensitive
expecting success of 1300.121 'setting different case sensitive subsections ':
test_when_finished "rm -f testConfig testConfig_expect testConfig_actual" &&
cat >testConfig_actual <<-EOF &&
[V "A"]
R = v1
[K "E"]
Y = v1
[a "b"]
c = v1
[d "e"]
f = v1
EOF
q_to_tab >testConfig_expect <<-EOF &&
[V "A"]
Qr = v2
[K "E"]
Qy = v2
[a "b"]
Qc = v2
[d "e"]
f = v1
[d "E"]
Qf = v2
EOF
# exact match
git config -f testConfig_actual a.b.c v2 &&
# match section and subsection, key is cased differently.
git config -f testConfig_actual K.E.y v2 &&
# section and key are matched case insensitive, but subsection needs
# to match; When writing out new values only the key is adjusted
git config -f testConfig_actual v.A.r v2 &&
# subsection is not matched:
git config -f testConfig_actual d.E.f v2 &&
test_cmp testConfig_expect testConfig_actual
ok 121 - setting different case sensitive subsections
expecting success of 1300.122 'git -c a=VAL rejects invalid 'a'':
test_must_fail git -c "$VAR=VAL" config -l
error: key does not contain a section: a
fatal: unable to parse command-line config
ok 122 - git -c a=VAL rejects invalid 'a'
expecting success of 1300.123 'git -c .a=VAL rejects invalid '.a'':
test_must_fail git -c "$VAR=VAL" config -l
error: key does not contain a section: .a
fatal: unable to parse command-line config
ok 123 - git -c .a=VAL rejects invalid '.a'
expecting success of 1300.124 'git -c a.=VAL rejects invalid 'a.'':
test_must_fail git -c "$VAR=VAL" config -l
error: key does not contain variable name: a.
fatal: unable to parse command-line config
ok 124 - git -c a.=VAL rejects invalid 'a.'
expecting success of 1300.125 'git -c a.0b=VAL rejects invalid 'a.0b'':
test_must_fail git -c "$VAR=VAL" config -l
error: invalid key: a.0b
fatal: unable to parse command-line config
ok 125 - git -c a.0b=VAL rejects invalid 'a.0b'
expecting success of 1300.126 'git -c a.b c.=VAL rejects invalid 'a.b c.'':
test_must_fail git -c "$VAR=VAL" config -l
error: key does not contain variable name: a.b c.
fatal: unable to parse command-line config
ok 126 - git -c a.b c.=VAL rejects invalid 'a.b c.'
expecting success of 1300.127 'git -c a.b c.0d=VAL rejects invalid 'a.b c.0d'':
test_must_fail git -c "$VAR=VAL" config -l
error: invalid key: a.b c.0d
fatal: unable to parse command-line config
ok 127 - git -c a.b c.0d=VAL rejects invalid 'a.b c.0d'
expecting success of 1300.128 'git -c a.b=VAL works with valid 'a.b'':
echo VAL >expect &&
git -c "$VAR=VAL" config --get "$VAR" >actual &&
test_cmp expect actual
ok 128 - git -c a.b=VAL works with valid 'a.b'
expecting success of 1300.129 'git -c a.b c.d=VAL works with valid 'a.b c.d'':
echo VAL >expect &&
git -c "$VAR=VAL" config --get "$VAR" >actual &&
test_cmp expect actual
ok 129 - git -c a.b c.d=VAL works with valid 'a.b c.d'
expecting success of 1300.130 'git -c is not confused by empty environment':
GIT_CONFIG_PARAMETERS="" git -c x.one=1 config --list
section.sub=section.val1=foo=bar
section.sub=section.val2=foo
bar
section.sub=section.val3=
section.sub=section.val4=
section.sub=section.val5
section.val=foo bar
alias.split-cmdline-fix=echo "
alias.checkconfig=-c foo.check=bar config foo.check
branch.main.mergeoptions=echo "
foo.bar=true
foo.ba =z.bar=false
x.one=1
ok 130 - git -c is not confused by empty environment
expecting success of 1300.131 'GIT_CONFIG_PARAMETERS handles old-style entries':
v="${SQ}key.one=foo${SQ}" &&
v="$v ${SQ}key.two=bar${SQ}" &&
v="$v ${SQ}key.ambiguous=section.whatever=value${SQ}" &&
GIT_CONFIG_PARAMETERS=$v git config --get-regexp "key.*" >actual &&
cat >expect <<-EOF &&
key.one foo
key.two bar
key.ambiguous section.whatever=value
EOF
test_cmp expect actual
ok 131 - GIT_CONFIG_PARAMETERS handles old-style entries
expecting success of 1300.132 'GIT_CONFIG_PARAMETERS handles new-style entries':
v="${SQ}key.one${SQ}=${SQ}foo${SQ}" &&
v="$v ${SQ}key.two${SQ}=${SQ}bar${SQ}" &&
v="$v ${SQ}key.ambiguous=section.whatever${SQ}=${SQ}value${SQ}" &&
GIT_CONFIG_PARAMETERS=$v git config --get-regexp "key.*" >actual &&
cat >expect <<-EOF &&
key.one foo
key.two bar
key.ambiguous=section.whatever value
EOF
test_cmp expect actual
ok 132 - GIT_CONFIG_PARAMETERS handles new-style entries
expecting success of 1300.133 'old and new-style entries can mix':
v="${SQ}key.oldone=oldfoo${SQ}" &&
v="$v ${SQ}key.newone${SQ}=${SQ}newfoo${SQ}" &&
v="$v ${SQ}key.oldtwo=oldbar${SQ}" &&
v="$v ${SQ}key.newtwo${SQ}=${SQ}newbar${SQ}" &&
GIT_CONFIG_PARAMETERS=$v git config --get-regexp "key.*" >actual &&
cat >expect <<-EOF &&
key.oldone oldfoo
key.newone newfoo
key.oldtwo oldbar
key.newtwo newbar
EOF
test_cmp expect actual
ok 133 - old and new-style entries can mix
expecting success of 1300.134 'old and new bools with ambiguous subsection':
v="${SQ}key.with=equals.oldbool${SQ}" &&
v="$v ${SQ}key.with=equals.newbool${SQ}=" &&
GIT_CONFIG_PARAMETERS=$v git config --get-regexp "key.*" >actual &&
cat >expect <<-EOF &&
key.with equals.oldbool
key.with=equals.newbool
EOF
test_cmp expect actual
ok 134 - old and new bools with ambiguous subsection
expecting success of 1300.135 'detect bogus GIT_CONFIG_PARAMETERS':
cat >expect <<-\EOF &&
env.one one
env.two two
EOF
GIT_CONFIG_PARAMETERS="${SQ}env.one=one${SQ} ${SQ}env.two=two${SQ}" \
git config --get-regexp "env.*" >actual &&
test_cmp expect actual &&
cat >expect <<-EOF &&
env.one one${SQ}
env.two two
EOF
GIT_CONFIG_PARAMETERS="${SQ}env.one=one${SQ}\\$SQ$SQ$SQ ${SQ}env.two=two${SQ}" \
git config --get-regexp "env.*" >actual &&
test_cmp expect actual &&
test_must_fail env \
GIT_CONFIG_PARAMETERS="${SQ}env.one=one${SQ}\\$SQ ${SQ}env.two=two${SQ}" \
git config --get-regexp "env.*"
error: bogus format in GIT_CONFIG_PARAMETERS
fatal: unable to parse command-line config
ok 135 - detect bogus GIT_CONFIG_PARAMETERS
expecting success of 1300.136 'git --config-env=key=envvar support':
cat >expect <<-\EOF &&
value
value
value
value
false
false
EOF
{
ENVVAR=value git --config-env=core.name=ENVVAR config core.name &&
ENVVAR=value git --config-env core.name=ENVVAR config core.name &&
ENVVAR=value git --config-env=foo.CamelCase=ENVVAR config foo.camelcase &&
ENVVAR=value git --config-env foo.CamelCase=ENVVAR config foo.camelcase &&
ENVVAR= git --config-env=foo.flag=ENVVAR config --bool foo.flag &&
ENVVAR= git --config-env foo.flag=ENVVAR config --bool foo.flag
} >actual &&
test_cmp expect actual
ok 136 - git --config-env=key=envvar support
expecting success of 1300.137 'git --config-env with missing value':
test_must_fail env ENVVAR=value git --config-env 2>error &&
grep "no config key given for --config-env" error &&
test_must_fail env ENVVAR=value git --config-env config core.name 2>error &&
grep "invalid config format: config" error
no config key given for --config-env
fatal: invalid config format: config
ok 137 - git --config-env with missing value
expecting success of 1300.138 'git --config-env fails with invalid parameters':
test_must_fail git --config-env=foo.flag config --bool foo.flag 2>error &&
test_i18ngrep "invalid config format: foo.flag" error &&
test_must_fail git --config-env=foo.flag= config --bool foo.flag 2>error &&
test_i18ngrep "missing environment variable name for configuration ${SQ}foo.flag${SQ}" error &&
sane_unset NONEXISTENT &&
test_must_fail git --config-env=foo.flag=NONEXISTENT config --bool foo.flag 2>error &&
test_i18ngrep "missing environment variable ${SQ}NONEXISTENT${SQ} for configuration ${SQ}foo.flag${SQ}" error
fatal: invalid config format: foo.flag
fatal: missing environment variable name for configuration 'foo.flag'
fatal: missing environment variable 'NONEXISTENT' for configuration 'foo.flag'
ok 138 - git --config-env fails with invalid parameters
expecting success of 1300.139 'git -c and --config-env work together':
cat >expect <<-\EOF &&
bar.cmd cmd-value
bar.env env-value
EOF
ENVVAR=env-value git \
-c bar.cmd=cmd-value \
--config-env=bar.env=ENVVAR \
config --get-regexp "^bar.*" >actual &&
test_cmp expect actual
ok 139 - git -c and --config-env work together
expecting success of 1300.140 'git -c and --config-env override each other':
cat >expect <<-\EOF &&
env
cmd
EOF
{
ENVVAR=env git -c bar.bar=cmd --config-env=bar.bar=ENVVAR config bar.bar &&
ENVVAR=env git --config-env=bar.bar=ENVVAR -c bar.bar=cmd config bar.bar
} >actual &&
test_cmp expect actual
ok 140 - git -c and --config-env override each other
expecting success of 1300.141 '--config-env handles keys with equals':
echo value=with=equals >expect &&
ENVVAR=value=with=equals git \
--config-env=section.subsection=with=equals.key=ENVVAR \
config section.subsection=with=equals.key >actual &&
test_cmp expect actual
ok 141 - --config-env handles keys with equals
expecting success of 1300.142 'git config handles environment config pairs':
GIT_CONFIG_COUNT=2 \
GIT_CONFIG_KEY_0="pair.one" GIT_CONFIG_VALUE_0="foo" \
GIT_CONFIG_KEY_1="pair.two" GIT_CONFIG_VALUE_1="bar" \
git config --get-regexp "pair.*" >actual &&
cat >expect <<-EOF &&
pair.one foo
pair.two bar
EOF
test_cmp expect actual
ok 142 - git config handles environment config pairs
expecting success of 1300.143 'git config ignores pairs without count':
test_must_fail env GIT_CONFIG_KEY_0="pair.one" GIT_CONFIG_VALUE_0="value" \
git config pair.one 2>error &&
test_must_be_empty error
ok 143 - git config ignores pairs without count
expecting success of 1300.144 'git config ignores pairs with zero count':
test_must_fail env \
GIT_CONFIG_COUNT=0 \
GIT_CONFIG_KEY_0="pair.one" GIT_CONFIG_VALUE_0="value" \
git config pair.one
ok 144 - git config ignores pairs with zero count
expecting success of 1300.145 'git config ignores pairs exceeding count':
GIT_CONFIG_COUNT=1 \
GIT_CONFIG_KEY_0="pair.one" GIT_CONFIG_VALUE_0="value" \
GIT_CONFIG_KEY_1="pair.two" GIT_CONFIG_VALUE_1="value" \
git config --get-regexp "pair.*" >actual &&
cat >expect <<-EOF &&
pair.one value
EOF
test_cmp expect actual
ok 145 - git config ignores pairs exceeding count
expecting success of 1300.146 'git config ignores pairs with zero count':
test_must_fail env \
GIT_CONFIG_COUNT=0 GIT_CONFIG_KEY_0="pair.one" GIT_CONFIG_VALUE_0="value" \
git config pair.one >error &&
test_must_be_empty error
ok 146 - git config ignores pairs with zero count
expecting success of 1300.147 'git config ignores pairs with empty count':
test_must_fail env \
GIT_CONFIG_COUNT= GIT_CONFIG_KEY_0="pair.one" GIT_CONFIG_VALUE_0="value" \
git config pair.one >error &&
test_must_be_empty error
ok 147 - git config ignores pairs with empty count
expecting success of 1300.148 'git config fails with invalid count':
test_must_fail env GIT_CONFIG_COUNT=10a git config --list 2>error &&
test_i18ngrep "bogus count" error &&
test_must_fail env GIT_CONFIG_COUNT=9999999999999999 git config --list 2>error &&
test_i18ngrep "too many entries" error
error: bogus count in GIT_CONFIG_COUNT
error: too many entries in GIT_CONFIG_COUNT
ok 148 - git config fails with invalid count
expecting success of 1300.149 'git config fails with missing config key':
test_must_fail env GIT_CONFIG_COUNT=1 GIT_CONFIG_VALUE_0="value" \
git config --list 2>error &&
test_i18ngrep "missing config key" error
error: missing config key GIT_CONFIG_KEY_0
ok 149 - git config fails with missing config key
expecting success of 1300.150 'git config fails with missing config value':
test_must_fail env GIT_CONFIG_COUNT=1 GIT_CONFIG_KEY_0="pair.one" \
git config --list 2>error &&
test_i18ngrep "missing config value" error
error: missing config value GIT_CONFIG_VALUE_0
ok 150 - git config fails with missing config value
expecting success of 1300.151 'git config fails with invalid config pair key':
test_must_fail env GIT_CONFIG_COUNT=1 \
GIT_CONFIG_KEY_0= GIT_CONFIG_VALUE_0=value \
git config --list &&
test_must_fail env GIT_CONFIG_COUNT=1 \
GIT_CONFIG_KEY_0=missing-section GIT_CONFIG_VALUE_0=value \
git config --list
error: empty config key
fatal: unable to parse command-line config
error: key does not contain a section: missing-section
fatal: unable to parse command-line config
ok 151 - git config fails with invalid config pair key
expecting success of 1300.152 'environment overrides config file':
test_when_finished "rm -f .git/config" &&
cat >.git/config <<-EOF &&
[pair]
one = value
EOF
GIT_CONFIG_COUNT=1 GIT_CONFIG_KEY_0=pair.one GIT_CONFIG_VALUE_0=override \
git config pair.one >actual &&
cat >expect <<-EOF &&
override
EOF
test_cmp expect actual
ok 152 - environment overrides config file
expecting success of 1300.153 'GIT_CONFIG_PARAMETERS overrides environment config':
GIT_CONFIG_COUNT=1 GIT_CONFIG_KEY_0=pair.one GIT_CONFIG_VALUE_0=value \
GIT_CONFIG_PARAMETERS="${SQ}pair.one=override${SQ}" \
git config pair.one >actual &&
cat >expect <<-EOF &&
override
EOF
test_cmp expect actual
ok 153 - GIT_CONFIG_PARAMETERS overrides environment config
expecting success of 1300.154 'command line overrides environment config':
GIT_CONFIG_COUNT=1 GIT_CONFIG_KEY_0=pair.one GIT_CONFIG_VALUE_0=value \
git -c pair.one=override config pair.one >actual &&
cat >expect <<-EOF &&
override
EOF
test_cmp expect actual
ok 154 - command line overrides environment config
expecting success of 1300.155 'git config --edit works':
git config -f tmp test.value no &&
echo test.value=yes >expect &&
GIT_EDITOR="echo [test]value=yes >" git config -f tmp --edit &&
git config -f tmp --list >actual &&
test_cmp expect actual
ok 155 - git config --edit works
expecting success of 1300.156 'git config --edit respects core.editor':
git config -f tmp test.value no &&
echo test.value=yes >expect &&
test_config core.editor "echo [test]value=yes >" &&
git config -f tmp --edit &&
git config -f tmp --list >actual &&
test_cmp expect actual
ok 156 - git config --edit respects core.editor
expecting success of 1300.157 'barf on syntax error':
cat >.git/config <<-\EOF &&
# broken section line
[section]
key garbage
EOF
test_must_fail git config --get section.key >actual 2>error &&
test_i18ngrep " line 3 " error
fatal: bad config line 3 in file .git/config
ok 157 - barf on syntax error
expecting success of 1300.158 'barf on incomplete section header':
cat >.git/config <<-\EOF &&
# broken section line
[section
key = value
EOF
test_must_fail git config --get section.key >actual 2>error &&
test_i18ngrep " line 2 " error
fatal: bad config line 2 in file .git/config
ok 158 - barf on incomplete section header
expecting success of 1300.159 'barf on incomplete string':
cat >.git/config <<-\EOF &&
# broken section line
[section]
key = "value string
EOF
test_must_fail git config --get section.key >actual 2>error &&
test_i18ngrep " line 3 " error
fatal: bad config line 3 in file .git/config
ok 159 - barf on incomplete string
expecting success of 1300.160 'urlmatch':
cat >.git/config <<-\EOF &&
[http]
sslVerify
[http "https://weak.example.com"]
sslVerify = false
cookieFile = /tmp/cookie.txt
EOF
test_expect_code 1 git config --bool --get-urlmatch doesnt.exist https://good.example.com >actual &&
test_must_be_empty actual &&
echo true >expect &&
git config --bool --get-urlmatch http.SSLverify https://good.example.com >actual &&
test_cmp expect actual &&
echo false >expect &&
git config --bool --get-urlmatch http.sslverify https://weak.example.com >actual &&
test_cmp expect actual &&
{
echo http.cookiefile /tmp/cookie.txt &&
echo http.sslverify false
} >expect &&
git config --get-urlmatch HTTP https://weak.example.com >actual &&
test_cmp expect actual
ok 160 - urlmatch
expecting success of 1300.161 'urlmatch favors more specific URLs':
cat >.git/config <<-\EOF &&
[http "https://example.com/"]
cookieFile = /tmp/root.txt
[http "https://example.com/subdirectory"]
cookieFile = /tmp/subdirectory.txt
[http "https://user@example.com/"]
cookieFile = /tmp/user.txt
[http "https://averylonguser@example.com/"]
cookieFile = /tmp/averylonguser.txt
[http "https://preceding.example.com"]
cookieFile = /tmp/preceding.txt
[http "https://*.example.com"]
cookieFile = /tmp/wildcard.txt
[http "https://*.example.com/wildcardwithsubdomain"]
cookieFile = /tmp/wildcardwithsubdomain.txt
[http "https://*.example.*"]
cookieFile = /tmp/multiwildcard.txt
[http "https://trailing.example.com"]
cookieFile = /tmp/trailing.txt
[http "https://user@*.example.com/"]
cookieFile = /tmp/wildcardwithuser.txt
[http "https://sub.example.com/"]
cookieFile = /tmp/sub.txt
EOF
echo http.cookiefile /tmp/root.txt >expect &&
git config --get-urlmatch HTTP https://example.com >actual &&
test_cmp expect actual &&
echo http.cookiefile /tmp/subdirectory.txt >expect &&
git config --get-urlmatch HTTP https://example.com/subdirectory >actual &&
test_cmp expect actual &&
echo http.cookiefile /tmp/subdirectory.txt >expect &&
git config --get-urlmatch HTTP https://example.com/subdirectory/nested >actual &&
test_cmp expect actual &&
echo http.cookiefile /tmp/user.txt >expect &&
git config --get-urlmatch HTTP https://user@example.com/ >actual &&
test_cmp expect actual &&
echo http.cookiefile /tmp/subdirectory.txt >expect &&
git config --get-urlmatch HTTP https://averylonguser@example.com/subdirectory >actual &&
test_cmp expect actual &&
echo http.cookiefile /tmp/preceding.txt >expect &&
git config --get-urlmatch HTTP https://preceding.example.com >actual &&
test_cmp expect actual &&
echo http.cookiefile /tmp/wildcard.txt >expect &&
git config --get-urlmatch HTTP https://wildcard.example.com >actual &&
test_cmp expect actual &&
echo http.cookiefile /tmp/sub.txt >expect &&
git config --get-urlmatch HTTP https://sub.example.com/wildcardwithsubdomain >actual &&
test_cmp expect actual &&
echo http.cookiefile /tmp/trailing.txt >expect &&
git config --get-urlmatch HTTP https://trailing.example.com >actual &&
test_cmp expect actual &&
echo http.cookiefile /tmp/sub.txt >expect &&
git config --get-urlmatch HTTP https://user@sub.example.com >actual &&
test_cmp expect actual &&
echo http.cookiefile /tmp/multiwildcard.txt >expect &&
git config --get-urlmatch HTTP https://wildcard.example.org >actual &&
test_cmp expect actual
ok 161 - urlmatch favors more specific URLs
expecting success of 1300.162 'urlmatch with wildcard':
cat >.git/config <<-\EOF &&
[http]
sslVerify
[http "https://*.example.com"]
sslVerify = false
cookieFile = /tmp/cookie.txt
EOF
test_expect_code 1 git config --bool --get-urlmatch doesnt.exist https://good.example.com >actual &&
test_must_be_empty actual &&
echo true >expect &&
git config --bool --get-urlmatch http.SSLverify https://example.com >actual &&
test_cmp expect actual &&
echo true >expect &&
git config --bool --get-urlmatch http.SSLverify https://good-example.com >actual &&
test_cmp expect actual &&
echo true >expect &&
git config --bool --get-urlmatch http.sslverify https://deep.nested.example.com >actual &&
test_cmp expect actual &&
echo false >expect &&
git config --bool --get-urlmatch http.sslverify https://good.example.com >actual &&
test_cmp expect actual &&
{
echo http.cookiefile /tmp/cookie.txt &&
echo http.sslverify false
} >expect &&
git config --get-urlmatch HTTP https://good.example.com >actual &&
test_cmp expect actual &&
echo http.sslverify >expect &&
git config --get-urlmatch HTTP https://more.example.com.au >actual &&
test_cmp expect actual
ok 162 - urlmatch with wildcard
expecting success of 1300.163 '--unset last key removes section (except if commented)':
cat >.git/config <<-\EOF &&
# some generic comment on the configuration file itself
# a comment specific to this "section" section.
[section]
# some intervening lines
# that should also be dropped
key = value
# please be careful when you update the above variable
EOF
cat >expect <<-\EOF &&
# some generic comment on the configuration file itself
# a comment specific to this "section" section.
[section]
# some intervening lines
# that should also be dropped
# please be careful when you update the above variable
EOF
git config --unset section.key &&
test_cmp expect .git/config &&
cat >.git/config <<-\EOF &&
[section]
key = value
[next-section]
EOF
cat >expect <<-\EOF &&
[next-section]
EOF
git config --unset section.key &&
test_cmp expect .git/config &&
q_to_tab >.git/config <<-\EOF &&
[one]
Qkey = "multiline \
QQ# with comment"
[two]
key = true
EOF
git config --unset two.key &&
! grep two .git/config &&
q_to_tab >.git/config <<-\EOF &&
[one]
Qkey = "multiline \
QQ# with comment"
[one]
key = true
EOF
git config --unset-all one.key &&
test_line_count = 0 .git/config &&
q_to_tab >.git/config <<-\EOF &&
[one]
Qkey = true
Q# a comment not at the start
[two]
Qkey = true
EOF
git config --unset two.key &&
grep two .git/config &&
q_to_tab >.git/config <<-\EOF &&
[one]
Qkey = not [two "subsection"]
[two "subsection"]
[two "subsection"]
Qkey = true
[TWO "subsection"]
[one]
EOF
git config --unset two.subsection.key &&
test "not [two subsection]" = "$(git config one.key)" &&
test_line_count = 3 .git/config
[two]
ok 163 - --unset last key removes section (except if commented)
expecting success of 1300.164 '--unset-all removes section if empty & uncommented':
cat >.git/config <<-\EOF &&
[section]
key = value1
key = value2
EOF
git config --unset-all section.key &&
test_line_count = 0 .git/config
ok 164 - --unset-all removes section if empty & uncommented
expecting success of 1300.165 'adding a key into an empty section reuses header':
cat >.git/config <<-\EOF &&
[section]
EOF
q_to_tab >expect <<-\EOF &&
[section]
Qkey = value
EOF
git config section.key value &&
test_cmp expect .git/config
ok 165 - adding a key into an empty section reuses header
expecting success of 1300.166 'preserves existing permissions':
chmod 0600 .git/config &&
git config imap.pass Hunter2 &&
perl -e \
"die q(badset) if ((stat(q(.git/config)))[2] & 07777) != 0600" &&
git config --rename-section imap pop &&
perl -e \
"die q(badrename) if ((stat(q(.git/config)))[2] & 07777) != 0600"
ok 166 - preserves existing permissions
expecting success of 1300.167 'set up --show-origin tests':
INCLUDE_DIR="$HOME/include" &&
mkdir -p "$INCLUDE_DIR" &&
cat >"$INCLUDE_DIR"/absolute.include <<-\EOF &&
[user]
absolute = include
EOF
cat >"$INCLUDE_DIR"/relative.include <<-\EOF &&
[user]
relative = include
EOF
cat >"$HOME"/.gitconfig <<-EOF &&
[user]
global = true
override = global
[include]
path = "$INCLUDE_DIR/absolute.include"
EOF
cat >.git/config <<-\EOF
[user]
local = true
override = local
[include]
path = ../include/relative.include
EOF
ok 167 - set up --show-origin tests
expecting success of 1300.168 '--show-origin with --list':
cat >expect <<-EOF &&
file:$HOME/.gitconfig user.global=true
file:$HOME/.gitconfig user.override=global
file:$HOME/.gitconfig include.path=$INCLUDE_DIR/absolute.include
file:$INCLUDE_DIR/absolute.include user.absolute=include
file:.git/config user.local=true
file:.git/config user.override=local
file:.git/config include.path=../include/relative.include
file:.git/../include/relative.include user.relative=include
command line: user.environ=true
command line: user.cmdline=true
EOF
GIT_CONFIG_COUNT=1 GIT_CONFIG_KEY_0=user.environ GIT_CONFIG_VALUE_0=true\
git -c user.cmdline=true config --list --show-origin >output &&
test_cmp expect output
ok 168 - --show-origin with --list
expecting success of 1300.169 '--show-origin with --list --null':
cat >expect <<-EOF &&
file:$HOME/.gitconfigQuser.global
trueQfile:$HOME/.gitconfigQuser.override
globalQfile:$HOME/.gitconfigQinclude.path
$INCLUDE_DIR/absolute.includeQfile:$INCLUDE_DIR/absolute.includeQuser.absolute
includeQfile:.git/configQuser.local
trueQfile:.git/configQuser.override
localQfile:.git/configQinclude.path
../include/relative.includeQfile:.git/../include/relative.includeQuser.relative
includeQcommand line:Quser.cmdline
trueQ
EOF
git -c user.cmdline=true config --null --list --show-origin >output.raw &&
nul_to_q <output.raw >output &&
# The here-doc above adds a newline that the --null output would not
# include. Add it here to make the two comparable.
echo >>output &&
test_cmp expect output
ok 169 - --show-origin with --list --null
expecting success of 1300.170 '--show-origin with single file':
cat >expect <<-\EOF &&
file:.git/config user.local=true
file:.git/config user.override=local
file:.git/config include.path=../include/relative.include
EOF
git config --local --list --show-origin >output &&
test_cmp expect output
ok 170 - --show-origin with single file
expecting success of 1300.171 '--show-origin with --get-regexp':
cat >expect <<-EOF &&
file:$HOME/.gitconfig user.global true
file:.git/config user.local true
EOF
git config --show-origin --get-regexp "user\.[g|l].*" >output &&
test_cmp expect output
ok 171 - --show-origin with --get-regexp
expecting success of 1300.172 '--show-origin getting a single key':
cat >expect <<-\EOF &&
file:.git/config local
EOF
git config --show-origin user.override >output &&
test_cmp expect output
ok 172 - --show-origin getting a single key
expecting success of 1300.173 'set up custom config file':
CUSTOM_CONFIG_FILE="custom.conf" &&
cat >"$CUSTOM_CONFIG_FILE" <<-\EOF
[user]
custom = true
EOF
ok 173 - set up custom config file
expecting success of 1300.174 'set up custom config file with special name characters':
WEIRDLY_NAMED_FILE="file\" (dq) and spaces.conf" &&
cp "$CUSTOM_CONFIG_FILE" "$WEIRDLY_NAMED_FILE"
ok 174 - set up custom config file with special name characters
expecting success of 1300.175 '--show-origin escape special file name characters':
cat >expect <<-\EOF &&
file:"file\" (dq) and spaces.conf" user.custom=true
EOF
git config --file "$WEIRDLY_NAMED_FILE" --show-origin --list >output &&
test_cmp expect output
ok 175 - --show-origin escape special file name characters
expecting success of 1300.176 '--show-origin stdin':
cat >expect <<-\EOF &&
standard input: user.custom=true
EOF
git config --file - --show-origin --list <"$CUSTOM_CONFIG_FILE" >output &&
test_cmp expect output
ok 176 - --show-origin stdin
expecting success of 1300.177 '--show-origin stdin with file include':
cat >"$INCLUDE_DIR"/stdin.include <<-EOF &&
[user]
stdin = include
EOF
cat >expect <<-EOF &&
file:$INCLUDE_DIR/stdin.include include
EOF
echo "[include]path=\"$INCLUDE_DIR\"/stdin.include" |
git config --show-origin --includes --file - user.stdin >output &&
test_cmp expect output
ok 177 - --show-origin stdin with file include
expecting success of 1300.178 '--show-origin blob':
blob=$(git hash-object -w "$CUSTOM_CONFIG_FILE") &&
cat >expect <<-EOF &&
blob:$blob user.custom=true
EOF
git config --blob=$blob --show-origin --list >output &&
test_cmp expect output
ok 178 - --show-origin blob
expecting success of 1300.179 '--show-origin blob ref':
cat >expect <<-\EOF &&
blob:main:custom.conf user.custom=true
EOF
git add "$CUSTOM_CONFIG_FILE" &&
git commit -m "new config file" &&
git config --blob=main:"$CUSTOM_CONFIG_FILE" --show-origin --list >output &&
test_cmp expect output
[main 21f66f7] new config file
Author: A U Thor <author@example.com>
1 file changed, 2 insertions(+)
create mode 100644 custom.conf
ok 179 - --show-origin blob ref
expecting success of 1300.180 '--show-scope with --list':
cat >expect <<-EOF &&
global user.global=true
global user.override=global
global include.path=$INCLUDE_DIR/absolute.include
global user.absolute=include
local user.local=true
local user.override=local
local include.path=../include/relative.include
local user.relative=include
local core.repositoryformatversion=1
local extensions.worktreeconfig=true
worktree user.worktree=true
command user.cmdline=true
EOF
git worktree add wt1 &&
# We need these to test for worktree scope, but outside of this
# test, this is just noise
test_config core.repositoryformatversion 1 &&
test_config extensions.worktreeConfig true &&
git config --worktree user.worktree true &&
git -c user.cmdline=true config --list --show-scope >output &&
test_cmp expect output
Preparing worktree (new branch 'wt1')
HEAD is now at 21f66f7 new config file
ok 180 - --show-scope with --list
expecting success of 1300.181 '--show-scope with --blob':
blob=$(git hash-object -w "$CUSTOM_CONFIG_FILE") &&
cat >expect <<-EOF &&
command user.custom=true
EOF
git config --blob=$blob --show-scope --list >output &&
test_cmp expect output
ok 181 - --show-scope with --blob
expecting success of 1300.182 '--show-scope with --local':
cat >expect <<-\EOF &&
local user.local=true
local user.override=local
local include.path=../include/relative.include
EOF
git config --local --list --show-scope >output &&
test_cmp expect output
ok 182 - --show-scope with --local
expecting success of 1300.183 '--show-scope getting a single value':
cat >expect <<-\EOF &&
local true
EOF
git config --show-scope --get user.local >output &&
test_cmp expect output
ok 183 - --show-scope getting a single value
expecting success of 1300.184 '--show-scope with --show-origin':
cat >expect <<-EOF &&
global file:$HOME/.gitconfig user.global=true
global file:$HOME/.gitconfig user.override=global
global file:$HOME/.gitconfig include.path=$INCLUDE_DIR/absolute.include
global file:$INCLUDE_DIR/absolute.include user.absolute=include
local file:.git/config user.local=true
local file:.git/config user.override=local
local file:.git/config include.path=../include/relative.include
local file:.git/../include/relative.include user.relative=include
command command line: user.cmdline=true
EOF
git -c user.cmdline=true config --list --show-origin --show-scope >output &&
test_cmp expect output
ok 184 - --show-scope with --show-origin
expecting success of 1300.185 'override global and system config':
test_when_finished rm -f \"\$HOME\"/.gitconfig &&
cat >"$HOME"/.gitconfig <<-EOF &&
[home]
config = true
EOF
test_when_finished rm -rf \"\$HOME\"/.config/git &&
mkdir -p "$HOME"/.config/git &&
cat >"$HOME"/.config/git/config <<-EOF &&
[xdg]
config = true
EOF
cat >.git/config <<-EOF &&
[local]
config = true
EOF
cat >custom-global-config <<-EOF &&
[global]
config = true
EOF
cat >custom-system-config <<-EOF &&
[system]
config = true
EOF
cat >expect <<-EOF &&
global xdg.config=true
global home.config=true
local local.config=true
EOF
git config --show-scope --list >output &&
test_cmp expect output &&
cat >expect <<-EOF &&
system system.config=true
global global.config=true
local local.config=true
EOF
GIT_CONFIG_NOSYSTEM=false GIT_CONFIG_SYSTEM=custom-system-config GIT_CONFIG_GLOBAL=custom-global-config \
git config --show-scope --list >output &&
test_cmp expect output &&
cat >expect <<-EOF &&
local local.config=true
EOF
GIT_CONFIG_NOSYSTEM=false GIT_CONFIG_SYSTEM=/dev/null GIT_CONFIG_GLOBAL=/dev/null \
git config --show-scope --list >output &&
test_cmp expect output
ok 185 - override global and system config
expecting success of 1300.186 'override global and system config with missing file':
test_must_fail env GIT_CONFIG_GLOBAL=does-not-exist GIT_CONFIG_SYSTEM=/dev/null git config --global --list &&
test_must_fail env GIT_CONFIG_GLOBAL=/dev/null GIT_CONFIG_SYSTEM=does-not-exist git config --system --list &&
GIT_CONFIG_GLOBAL=does-not-exist GIT_CONFIG_SYSTEM=does-not-exist git version
fatal: unable to read config file 'does-not-exist': No such file or directory
fatal: unable to read config file 'does-not-exist': No such file or directory
git version 2.40.1
ok 186 - override global and system config with missing file
expecting success of 1300.187 'system override has no effect with GIT_CONFIG_NOSYSTEM':
# `git config --system` has different semantics compared to other
# commands as it ignores GIT_CONFIG_NOSYSTEM. We thus test whether the
# variable has an effect via a different proxy.
cat >alias-config <<-EOF &&
[alias]
hello-world = !echo "hello world"
EOF
test_must_fail env GIT_CONFIG_NOSYSTEM=true GIT_CONFIG_SYSTEM=alias-config \
git hello-world &&
GIT_CONFIG_NOSYSTEM=false GIT_CONFIG_SYSTEM=alias-config \
git hello-world >actual &&
echo "hello world" >expect &&
test_cmp expect actual
git: 'hello-world' is not a git command. See 'git --help'.
ok 187 - system override has no effect with GIT_CONFIG_NOSYSTEM
expecting success of 1300.188 'write to overridden global and system config':
cat >expect <<EOF &&
[config]
key = value
EOF
GIT_CONFIG_GLOBAL=write-to-global git config --global config.key value &&
test_cmp expect write-to-global &&
GIT_CONFIG_SYSTEM=write-to-system git config --system config.key value &&
test_cmp expect write-to-system
ok 188 - write to overridden global and system config
expecting success of 1300.189 '--local requires a repo':
# we expect 128 to ensure that we do not simply
# fail to find anything and return code "1"
test_expect_code 128 nongit git config $opt foo.bar
fatal: --local can only be used inside a git repository
ok 189 - --local requires a repo
expecting success of 1300.190 '--worktree requires a repo':
# we expect 128 to ensure that we do not simply
# fail to find anything and return code "1"
test_expect_code 128 nongit git config $opt foo.bar
fatal: --worktree can only be used inside a git repository
ok 190 - --worktree requires a repo
expecting success of 1300.191 'identical modern --type specifiers are allowed':
test_cmp_config 1048576 --type=int --type=int section.big
ok 191 - identical modern --type specifiers are allowed
expecting success of 1300.192 'identical legacy --type specifiers are allowed':
test_cmp_config 1048576 --int --int section.big
ok 192 - identical legacy --type specifiers are allowed
expecting success of 1300.193 'identical mixed --type specifiers are allowed':
test_cmp_config 1048576 --int --type=int section.big
ok 193 - identical mixed --type specifiers are allowed
expecting success of 1300.194 'non-identical modern --type specifiers are not allowed':
test_must_fail git config --type=int --type=bool section.big 2>error &&
test_i18ngrep "only one type at a time" error
error: only one type at a time
ok 194 - non-identical modern --type specifiers are not allowed
expecting success of 1300.195 'non-identical legacy --type specifiers are not allowed':
test_must_fail git config --int --bool section.big 2>error &&
test_i18ngrep "only one type at a time" error
error: only one type at a time
ok 195 - non-identical legacy --type specifiers are not allowed
expecting success of 1300.196 'non-identical mixed --type specifiers are not allowed':
test_must_fail git config --type=int --bool section.big 2>error &&
test_i18ngrep "only one type at a time" error
error: only one type at a time
ok 196 - non-identical mixed --type specifiers are not allowed
expecting success of 1300.197 '--type allows valid type specifiers':
test_cmp_config true --type=bool section.foo
ok 197 - --type allows valid type specifiers
expecting success of 1300.198 '--no-type unsets type specifiers':
test_cmp_config 10 --type=bool --no-type section.number
ok 198 - --no-type unsets type specifiers
expecting success of 1300.199 'unset type specifiers may be reset to conflicting ones':
test_cmp_config 1048576 --type=bool --no-type --type=int section.big
ok 199 - unset type specifiers may be reset to conflicting ones
expecting success of 1300.200 '--type rejects unknown specifiers':
test_must_fail git config --type=nonsense section.foo 2>error &&
test_i18ngrep "unrecognized --type argument" error
fatal: unrecognized --type argument, nonsense
ok 200 - --type rejects unknown specifiers
expecting success of 1300.201 '--type=int requires at least one digit':
test_must_fail git config --type int --default m some.key >out 2>error &&
grep "bad numeric config value" error &&
test_must_be_empty out
fatal: bad numeric config value 'm' for 'some.key': invalid unit
ok 201 - --type=int requires at least one digit
expecting success of 1300.202 '--replace-all does not invent newlines':
q_to_tab >.git/config <<-\EOF &&
[abc]key
QkeepSection
[xyz]
Qkey = 1
[abc]
Qkey = a
EOF
q_to_tab >expect <<-\EOF &&
[abc]
QkeepSection
[xyz]
Qkey = 1
[abc]
Qkey = b
EOF
git config --replace-all abc.key b &&
test_cmp expect .git/config
ok 202 - --replace-all does not invent newlines
expecting success of 1300.203 'set all config with value-pattern':
test_when_finished rm -f config initial &&
git config --file=initial abc.key one &&
# no match => add new entry
cp initial config &&
git config --file=config abc.key two a+ &&
git config --file=config --list >actual &&
cat >expect <<-\EOF &&
abc.key=one
abc.key=two
EOF
test_cmp expect actual &&
# multiple matches => failure
test_must_fail git config --file=config abc.key three o+ 2>err &&
test_i18ngrep "has multiple values" err &&
# multiple values, no match => add
git config --file=config abc.key three a+ &&
git config --file=config --list >actual &&
cat >expect <<-\EOF &&
abc.key=one
abc.key=two
abc.key=three
EOF
test_cmp expect actual &&
# single match => replace
git config --file=config abc.key four h+ &&
git config --file=config --list >actual &&
cat >expect <<-\EOF &&
abc.key=one
abc.key=two
abc.key=four
EOF
test_cmp expect actual
warning: abc.key has multiple values
ok 203 - set all config with value-pattern
expecting success of 1300.204 '--replace-all and value-pattern':
test_when_finished rm -f config &&
git config --file=config --add abc.key one &&
git config --file=config --add abc.key two &&
git config --file=config --add abc.key three &&
git config --file=config --replace-all abc.key four "o+" &&
git config --file=config --list >actual &&
cat >expect <<-\EOF &&
abc.key=four
abc.key=three
EOF
test_cmp expect actual
ok 204 - --replace-all and value-pattern
expecting success of 1300.205 'refuse --fixed-value for incompatible actions':
test_when_finished rm -f config &&
git config --file=config dev.null bogus &&
# These modes do not allow --fixed-value at all
test_must_fail git config --file=config --fixed-value --add dev.null bogus &&
test_must_fail git config --file=config --fixed-value --get-urlmatch dev.null bogus &&
test_must_fail git config --file=config --fixed-value --get-urlmatch dev.null bogus &&
test_must_fail git config --file=config --fixed-value --rename-section dev null &&
test_must_fail git config --file=config --fixed-value --remove-section dev &&
test_must_fail git config --file=config --fixed-value --list &&
test_must_fail git config --file=config --fixed-value --get-color dev.null &&
test_must_fail git config --file=config --fixed-value --get-colorbool dev.null &&
# These modes complain when --fixed-value has no value-pattern
test_must_fail git config --file=config --fixed-value dev.null bogus &&
test_must_fail git config --file=config --fixed-value --replace-all dev.null bogus &&
test_must_fail git config --file=config --fixed-value --get dev.null &&
test_must_fail git config --file=config --fixed-value --get-all dev.null &&
test_must_fail git config --file=config --fixed-value --get-regexp "dev.*" &&
test_must_fail git config --file=config --fixed-value --unset dev.null &&
test_must_fail git config --file=config --fixed-value --unset-all dev.null
error: --fixed-value only applies with 'value-pattern'
usage: git config [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> with --get, use default value when missing entry
error: --fixed-value only applies with 'value-pattern'
usage: git config [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> with --get, use default value when missing entry
error: --fixed-value only applies with 'value-pattern'
usage: git config [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> with --get, use default value when missing entry
error: --fixed-value only applies with 'value-pattern'
usage: git config [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> with --get, use default value when missing entry
error: --fixed-value only applies with 'value-pattern'
usage: git config [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> with --get, use default value when missing entry
error: --fixed-value only applies with 'value-pattern'
usage: git config [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> with --get, use default value when missing entry
error: --fixed-value only applies with 'value-pattern'
usage: git config [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> with --get, use default value when missing entry
error: --fixed-value only applies with 'value-pattern'
usage: git config [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> with --get, use default value when missing entry
error: --fixed-value only applies with 'value-pattern'
usage: git config [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> with --get, use default value when missing entry
error: --fixed-value only applies with 'value-pattern'
usage: git config [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> with --get, use default value when missing entry
error: --fixed-value only applies with 'value-pattern'
usage: git config [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> with --get, use default value when missing entry
error: --fixed-value only applies with 'value-pattern'
usage: git config [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> with --get, use default value when missing entry
error: --fixed-value only applies with 'value-pattern'
usage: git config [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> with --get, use default value when missing entry
error: --fixed-value only applies with 'value-pattern'
usage: git config [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> with --get, use default value when missing entry
error: --fixed-value only applies with 'value-pattern'
usage: git config [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> with --get, use default value when missing entry
ok 205 - refuse --fixed-value for incompatible actions
expecting success of 1300.206 '--fixed-value uses exact string matching':
test_when_finished rm -f config initial &&
META="a+b*c?d[e]f.g" &&
git config --file=initial fixed.test "$META" &&
cp initial config &&
git config --file=config fixed.test bogus "$META" &&
git config --file=config --list >actual &&
cat >expect <<-EOF &&
fixed.test=$META
fixed.test=bogus
EOF
test_cmp expect actual &&
cp initial config &&
git config --file=config --fixed-value fixed.test bogus "$META" &&
git config --file=config --list >actual &&
cat >expect <<-\EOF &&
fixed.test=bogus
EOF
test_cmp expect actual &&
cp initial config &&
test_must_fail git config --file=config --unset fixed.test "$META" &&
git config --file=config --fixed-value --unset fixed.test "$META" &&
test_must_fail git config --file=config fixed.test &&
cp initial config &&
test_must_fail git config --file=config --unset-all fixed.test "$META" &&
git config --file=config --fixed-value --unset-all fixed.test "$META" &&
test_must_fail git config --file=config fixed.test &&
cp initial config &&
git config --file=config --replace-all fixed.test bogus "$META" &&
git config --file=config --list >actual &&
cat >expect <<-EOF &&
fixed.test=$META
fixed.test=bogus
EOF
test_cmp expect actual &&
git config --file=config --fixed-value --replace-all fixed.test bogus "$META" &&
git config --file=config --list >actual &&
cat >expect <<-EOF &&
fixed.test=bogus
fixed.test=bogus
EOF
test_cmp expect actual
ok 206 - --fixed-value uses exact string matching
expecting success of 1300.207 '--get and --get-all with --fixed-value':
test_when_finished rm -f config &&
META="a+b*c?d[e]f.g" &&
git config --file=config fixed.test bogus &&
git config --file=config --add fixed.test "$META" &&
git config --file=config --get fixed.test bogus &&
test_must_fail git config --file=config --get fixed.test "$META" &&
git config --file=config --get --fixed-value fixed.test "$META" &&
test_must_fail git config --file=config --get --fixed-value fixed.test non-existent &&
git config --file=config --get-all fixed.test bogus &&
test_must_fail git config --file=config --get-all fixed.test "$META" &&
git config --file=config --get-all --fixed-value fixed.test "$META" &&
test_must_fail git config --file=config --get-all --fixed-value fixed.test non-existent &&
git config --file=config --get-regexp fixed+ bogus &&
test_must_fail git config --file=config --get-regexp fixed+ "$META" &&
git config --file=config --get-regexp --fixed-value fixed+ "$META" &&
test_must_fail git config --file=config --get-regexp --fixed-value fixed+ non-existent
bogus
a+b*c?d[e]f.g
bogus
a+b*c?d[e]f.g
fixed.test bogus
fixed.test a+b*c?d[e]f.g
ok 207 - --get and --get-all with --fixed-value
expecting success of 1300.208 'includeIf.hasconfig:remote.*.url':
git init hasremoteurlTest &&
test_when_finished "rm -rf hasremoteurlTest" &&
cat >include-this <<-\EOF &&
[user]
this = this-is-included
EOF
cat >dont-include-that <<-\EOF &&
[user]
that = that-is-not-included
EOF
cat >>hasremoteurlTest/.git/config <<-EOF &&
[includeIf "hasconfig:remote.*.url:foourl"]
path = "$(pwd)/include-this"
[includeIf "hasconfig:remote.*.url:barurl"]
path = "$(pwd)/dont-include-that"
[remote "foo"]
url = foourl
EOF
echo this-is-included >expect-this &&
git -C hasremoteurlTest config --get user.this >actual-this &&
test_cmp expect-this actual-this &&
test_must_fail git -C hasremoteurlTest config --get user.that
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1300-config/hasremoteurlTest/.git/
ok 208 - includeIf.hasconfig:remote.*.url
expecting success of 1300.209 'includeIf.hasconfig:remote.*.url respects last-config-wins':
git init hasremoteurlTest &&
test_when_finished "rm -rf hasremoteurlTest" &&
cat >include-two-three <<-\EOF &&
[user]
two = included-config
three = included-config
EOF
cat >>hasremoteurlTest/.git/config <<-EOF &&
[remote "foo"]
url = foourl
[user]
one = main-config
two = main-config
[includeIf "hasconfig:remote.*.url:foourl"]
path = "$(pwd)/include-two-three"
[user]
three = main-config
EOF
echo main-config >expect-main-config &&
echo included-config >expect-included-config &&
git -C hasremoteurlTest config --get user.one >actual &&
test_cmp expect-main-config actual &&
git -C hasremoteurlTest config --get user.two >actual &&
test_cmp expect-included-config actual &&
git -C hasremoteurlTest config --get user.three >actual &&
test_cmp expect-main-config actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1300-config/hasremoteurlTest/.git/
ok 209 - includeIf.hasconfig:remote.*.url respects last-config-wins
expecting success of 1300.210 'includeIf.hasconfig:remote.*.url globs':
git init hasremoteurlTest &&
test_when_finished "rm -rf hasremoteurlTest" &&
printf "[user]\ndss = yes\n" >double-star-start &&
printf "[user]\ndse = yes\n" >double-star-end &&
printf "[user]\ndsm = yes\n" >double-star-middle &&
printf "[user]\nssm = yes\n" >single-star-middle &&
printf "[user]\nno = no\n" >no &&
cat >>hasremoteurlTest/.git/config <<-EOF &&
[remote "foo"]
url = https://foo/bar/baz
[includeIf "hasconfig:remote.*.url:**/baz"]
path = "$(pwd)/double-star-start"
[includeIf "hasconfig:remote.*.url:**/nomatch"]
path = "$(pwd)/no"
[includeIf "hasconfig:remote.*.url:https:/**"]
path = "$(pwd)/double-star-end"
[includeIf "hasconfig:remote.*.url:nomatch:/**"]
path = "$(pwd)/no"
[includeIf "hasconfig:remote.*.url:https:/**/baz"]
path = "$(pwd)/double-star-middle"
[includeIf "hasconfig:remote.*.url:https:/**/nomatch"]
path = "$(pwd)/no"
[includeIf "hasconfig:remote.*.url:https://*/bar/baz"]
path = "$(pwd)/single-star-middle"
[includeIf "hasconfig:remote.*.url:https://*/baz"]
path = "$(pwd)/no"
EOF
git -C hasremoteurlTest config --get user.dss &&
git -C hasremoteurlTest config --get user.dse &&
git -C hasremoteurlTest config --get user.dsm &&
git -C hasremoteurlTest config --get user.ssm &&
test_must_fail git -C hasremoteurlTest config --get user.no
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1300-config/hasremoteurlTest/.git/
yes
yes
yes
yes
ok 210 - includeIf.hasconfig:remote.*.url globs
expecting success of 1300.211 'includeIf.hasconfig:remote.*.url forbids remote url in such included files':
git init hasremoteurlTest &&
test_when_finished "rm -rf hasremoteurlTest" &&
cat >include-with-url <<-\EOF &&
[remote "bar"]
url = barurl
EOF
cat >>hasremoteurlTest/.git/config <<-EOF &&
[includeIf "hasconfig:remote.*.url:foourl"]
path = "$(pwd)/include-with-url"
EOF
# test with any Git command
test_must_fail git -C hasremoteurlTest status 2>err &&
grep "fatal: remote URLs cannot be configured in file directly or indirectly included by includeIf.hasconfig:remote.*.url" err
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1300-config/hasremoteurlTest/.git/
fatal: remote URLs cannot be configured in file directly or indirectly included by includeIf.hasconfig:remote.*.url
ok 211 - includeIf.hasconfig:remote.*.url forbids remote url in such included files
# passed all 211 test(s)
1..211
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t0027-auto-crlf.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 >tmp &&
sed -n -e "/TeBi_/{s!attr/[ ]*!!g
s! ! !g
s! *! !g
p
}" tmp | sort >actual &&
test_cmp expect actual
ok 1 - ls-files --eol -o Text/Binary
expecting success of 0027.2 'setup main':
echo >.gitattributes &&
git checkout -b main &&
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
Switched to a new branch 'main'
[main (root-commit) 92d411f] add .gitattributes
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 .gitattributes
[main 28e6523] mixed line endings
Author: A U Thor <author@example.com>
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 main
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" "" ""
[main c62ad5d] core.autocrlf false
Author: A U Thor <author@example.com>
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
[main d70a676] core.autocrlf true
Author: A U Thor <author@example.com>
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
[main a106c40] core.autocrlf input
Author: A U Thor <author@example.com>
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" "" ""
[main 68bab31] core.autocrlf false
Author: A U Thor <author@example.com>
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
[main efc8d5d] core.autocrlf true
Author: A U Thor <author@example.com>
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
[main 21fb1d0] core.autocrlf input
Author: A U Thor <author@example.com>
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 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"
[main 16b2963] core.autocrlf false
Author: A U Thor <author@example.com>
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
[main 006c230] core.autocrlf true
Author: A U Thor <author@example.com>
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
[main 00481a2] core.autocrlf input
Author: A U Thor <author@example.com>
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 0027.6 'commit files attr=-text':
commit_check_warn false "-text" "" "" "" "" "" &&
commit_check_warn true "-text" "" "" "" "" "" &&
commit_check_warn input "-text" "" "" "" "" ""
[main 88d9dda] core.autocrlf false
Author: A U Thor <author@example.com>
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
[main 1456133] core.autocrlf true
Author: A U Thor <author@example.com>
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
[main 08b2ac8] core.autocrlf input
Author: A U Thor <author@example.com>
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 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"
[main f130974] core.autocrlf false
Author: A U Thor <author@example.com>
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
[main 0b69747] core.autocrlf true
Author: A U Thor <author@example.com>
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
[main 7d87167] core.autocrlf input
Author: A U Thor <author@example.com>
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" ""
[main 753280e] core.autocrlf false
Author: A U Thor <author@example.com>
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
[main abec00d] core.autocrlf true
Author: A U Thor <author@example.com>
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
[main 4e045e6] core.autocrlf input
Author: A U Thor <author@example.com>
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 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 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 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
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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
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 0027.39 'commit NNO files crlf=false attr= LF':
check_warning "$lfwarn" ${pfx}_LF.err
ok 39 - commit NNO files crlf=false attr= LF
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 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
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 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
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 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
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 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
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 0027.49 'commit NNO files crlf=input attr= LF':
check_warning "$lfwarn" ${pfx}_LF.err
ok 49 - commit NNO files crlf=input attr= LF
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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
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
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
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
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
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
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 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
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
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
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 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
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 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
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
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 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
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
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 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
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
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
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
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
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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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
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
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 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
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 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
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 0027.134 'commit NNO files crlf=false attr= LF':
check_warning "$lfwarn" ${pfx}_LF.err
ok 134 - commit NNO files crlf=false attr= LF
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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 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 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
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 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
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 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 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 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
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 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
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 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
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
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 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
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 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 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
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
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 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
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 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
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
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
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 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
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 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
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 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
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
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
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
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 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
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
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 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
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
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
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 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
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
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 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
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 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
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
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
[main 35da0ca] commit files on top of NNO
Author: A U Thor <author@example.com>
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 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 220 - commit empty gitattribues
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 221 - commit text=auto
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
ok 222 - commit text
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 223 - commit -text
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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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 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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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 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 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
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 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
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 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 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 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
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
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 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 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 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
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 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
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 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
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 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
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 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 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 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
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
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 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
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
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 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
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 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
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 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
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
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 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
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 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
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 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 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
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 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
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 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 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 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
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 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 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 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
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 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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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 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
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
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
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 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 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 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 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 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 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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 374 - ls-files --eol attr=-text aeol= core.autocrlf=true core.eol=lf
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 380 - ls-files --eol attr=-text aeol=lf core.autocrlf=true core.eol=lf
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 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 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 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
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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 386 - ls-files --eol attr=-text aeol=crlf core.autocrlf=true core.eol=lf
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 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
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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 392 - ls-files --eol attr=text aeol=lf core.autocrlf=true core.eol=lf
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 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
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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 398 - ls-files --eol attr=text aeol=crlf core.autocrlf=true core.eol=lf
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 404 - ls-files --eol attr=auto aeol=lf core.autocrlf=true core.eol=lf
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 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
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 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
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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 410 - ls-files --eol attr=auto aeol=crlf core.autocrlf=true core.eol=lf
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 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
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 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
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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 416 - ls-files --eol attr=-text aeol= core.autocrlf=false core.eol=lf
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 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
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 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
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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 422 - ls-files --eol attr=-text aeol=lf core.autocrlf=false core.eol=lf
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 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
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 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
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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 428 - ls-files --eol attr=-text aeol=crlf core.autocrlf=false core.eol=lf
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 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
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 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
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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 434 - ls-files --eol attr=text aeol=lf core.autocrlf=false core.eol=lf
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 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
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
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
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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 440 - ls-files --eol attr=text aeol=crlf core.autocrlf=false core.eol=lf
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 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
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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 446 - ls-files --eol attr=auto aeol=lf core.autocrlf=false core.eol=lf
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 452 - ls-files --eol attr=auto aeol=crlf core.autocrlf=false core.eol=lf
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 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 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 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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 458 - ls-files --eol attr=-text aeol= core.autocrlf=input core.eol=lf
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 464 - ls-files --eol attr=-text aeol=lf core.autocrlf=input core.eol=lf
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 470 - ls-files --eol attr=-text aeol=crlf core.autocrlf=input core.eol=lf
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 476 - ls-files --eol attr=text aeol=lf core.autocrlf=input core.eol=lf
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 482 - ls-files --eol attr=text aeol=crlf core.autocrlf=input core.eol=lf
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 488 - ls-files --eol attr=auto aeol=lf core.autocrlf=input core.eol=lf
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 494 - ls-files --eol attr=auto aeol=crlf core.autocrlf=input core.eol=lf
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 500 - ls-files --eol attr= aeol= core.autocrlf=false core.eol=lf
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 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 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 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
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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 506 - ls-files --eol attr= aeol= core.autocrlf=true core.eol=lf
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 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 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 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
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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 512 - ls-files --eol attr=auto aeol= core.autocrlf=true core.eol=lf
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 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 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 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
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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 518 - ls-files --eol attr=text aeol= core.autocrlf=true core.eol=lf
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 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 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 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
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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 524 - ls-files --eol attr=text aeol= core.autocrlf=input core.eol=lf
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 530 - ls-files --eol attr=auto aeol= core.autocrlf=input core.eol=lf
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 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
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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 536 - ls-files --eol attr=-text aeol= core.autocrlf=true core.eol=crlf
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 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
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
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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 542 - ls-files --eol attr=-text aeol=lf core.autocrlf=true core.eol=crlf
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 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
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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 548 - ls-files --eol attr=-text aeol=crlf core.autocrlf=true core.eol=crlf
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 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
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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 554 - ls-files --eol attr=text aeol=lf core.autocrlf=true core.eol=crlf
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 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
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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 560 - ls-files --eol attr=text aeol=crlf core.autocrlf=true core.eol=crlf
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 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
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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 566 - ls-files --eol attr=auto aeol=lf core.autocrlf=true core.eol=crlf
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 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
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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 572 - ls-files --eol attr=auto aeol=crlf core.autocrlf=true core.eol=crlf
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 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
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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 578 - ls-files --eol attr=-text aeol= core.autocrlf=false core.eol=crlf
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 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
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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 584 - ls-files --eol attr=-text aeol=lf core.autocrlf=false core.eol=crlf
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 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
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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 590 - ls-files --eol attr=-text aeol=crlf core.autocrlf=false core.eol=crlf
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 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
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 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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 596 - ls-files --eol attr=text aeol=lf core.autocrlf=false core.eol=crlf
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 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 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
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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 602 - ls-files --eol attr=text aeol=crlf core.autocrlf=false core.eol=crlf
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 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 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
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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 608 - ls-files --eol attr=auto aeol=lf core.autocrlf=false core.eol=crlf
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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
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
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 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
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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 620 - ls-files --eol attr=-text aeol= core.autocrlf=input core.eol=crlf
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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
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
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 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
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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 632 - ls-files --eol attr=-text aeol=crlf core.autocrlf=input core.eol=crlf
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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 638 - ls-files --eol attr=text aeol=lf core.autocrlf=input core.eol=crlf
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 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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 644 - ls-files --eol attr=text aeol=crlf core.autocrlf=input core.eol=crlf
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 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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 650 - ls-files --eol attr=auto aeol=lf core.autocrlf=input core.eol=crlf
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 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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 656 - ls-files --eol attr=auto aeol=crlf core.autocrlf=input core.eol=crlf
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 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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 662 - ls-files --eol attr= aeol= core.autocrlf=false core.eol=crlf
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 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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 668 - ls-files --eol attr= aeol= core.autocrlf=true core.eol=crlf
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 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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 674 - ls-files --eol attr=auto aeol= core.autocrlf=true core.eol=crlf
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 680 - ls-files --eol attr=text aeol= core.autocrlf=true core.eol=crlf
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 686 - ls-files --eol attr=text aeol= core.autocrlf=input core.eol=crlf
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 692 - ls-files --eol attr=auto aeol= core.autocrlf=input core.eol=crlf
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 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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 698 - ls-files --eol attr=-text aeol= core.autocrlf=true core.eol=native
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
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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 704 - ls-files --eol attr=-text aeol=lf core.autocrlf=true core.eol=native
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 710 - ls-files --eol attr=-text aeol=crlf core.autocrlf=true core.eol=native
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
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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 716 - ls-files --eol attr=text aeol=lf core.autocrlf=true core.eol=native
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
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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 722 - ls-files --eol attr=text aeol=crlf core.autocrlf=true core.eol=native
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 728 - ls-files --eol attr=auto aeol=lf core.autocrlf=true core.eol=native
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 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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 734 - ls-files --eol attr=auto aeol=crlf core.autocrlf=true core.eol=native
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
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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 740 - ls-files --eol attr=-text aeol= core.autocrlf=false core.eol=native
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
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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 746 - ls-files --eol attr=-text aeol=lf core.autocrlf=false core.eol=native
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 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 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 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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 752 - ls-files --eol attr=-text aeol=crlf core.autocrlf=false core.eol=native
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
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 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 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
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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 758 - ls-files --eol attr=text aeol=lf core.autocrlf=false core.eol=native
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
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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 764 - ls-files --eol attr=text aeol=crlf core.autocrlf=false core.eol=native
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 770 - ls-files --eol attr=auto aeol=lf core.autocrlf=false core.eol=native
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 776 - ls-files --eol attr=auto aeol=crlf core.autocrlf=false core.eol=native
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 782 - ls-files --eol attr=-text aeol= core.autocrlf=input core.eol=native
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
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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 788 - ls-files --eol attr=-text aeol=lf core.autocrlf=input core.eol=native
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
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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 794 - ls-files --eol attr=-text aeol=crlf core.autocrlf=input core.eol=native
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 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
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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 800 - ls-files --eol attr=text aeol=lf core.autocrlf=input core.eol=native
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
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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 806 - ls-files --eol attr=text aeol=crlf core.autocrlf=input core.eol=native
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
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
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 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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 812 - ls-files --eol attr=auto aeol=lf core.autocrlf=input core.eol=native
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 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
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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 818 - ls-files --eol attr=auto aeol=crlf core.autocrlf=input core.eol=native
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 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
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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 824 - ls-files --eol attr= aeol= core.autocrlf=false core.eol=native
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 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 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 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
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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 830 - ls-files --eol attr= aeol= core.autocrlf=true core.eol=native
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 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
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
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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 836 - ls-files --eol attr=auto aeol= core.autocrlf=true core.eol=native
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 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 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 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
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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 842 - ls-files --eol attr=text aeol= core.autocrlf=true core.eol=native
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 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
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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 848 - ls-files --eol attr=text aeol= core.autocrlf=input core.eol=native
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 854 - ls-files --eol attr=auto aeol= core.autocrlf=input core.eol=native
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 860 - ls-files --eol attr=text aeol= core.autocrlf=false core.eol=crlf
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 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 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 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
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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 866 - ls-files --eol attr=text aeol= core.autocrlf=false core.eol=lf
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
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 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
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 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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 872 - ls-files --eol attr=text aeol= core.autocrlf=false core.eol=
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 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 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 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 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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 878 - ls-files --eol attr=text aeol= core.autocrlf=false core.eol=native
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 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
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
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
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 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 884 - ls-files --eol attr=auto aeol= core.autocrlf=false core.eol=
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
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
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 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
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
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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 890 - ls-files --eol attr=auto aeol= core.autocrlf=false core.eol=native
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 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 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 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 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= aeol=lf 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 896 - ls-files --eol attr= aeol=lf core.autocrlf=false core.eol=
expecting success of 0027.897 'checkout attr= aeol=lf core.autocrlf=false core.eol= file=LF':
compare_ws_file eol__crlf_false_attr__ LF crlf_false_attr__LF.txt
ok 897 - checkout attr= aeol=lf core.autocrlf=false core.eol= file=LF
expecting success of 0027.898 'checkout attr= aeol=lf core.autocrlf=false core.eol= file=CRLF':
compare_ws_file eol__crlf_false_attr__ CRLF crlf_false_attr__CRLF.txt
ok 898 - checkout attr= aeol=lf core.autocrlf=false core.eol= file=CRLF
expecting success of 0027.899 'checkout attr= aeol=lf core.autocrlf=false core.eol= file=CRLF_mix_LF':
compare_ws_file eol__crlf_false_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
ok 899 - checkout attr= aeol=lf core.autocrlf=false core.eol= file=CRLF_mix_LF
expecting success of 0027.900 'checkout attr= aeol=lf core.autocrlf=false core.eol= file=LF_mix_CR':
compare_ws_file eol__crlf_false_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt
ok 900 - checkout attr= aeol=lf core.autocrlf=false core.eol= file=LF_mix_CR
expecting success of 0027.901 'checkout attr= aeol=lf core.autocrlf=false core.eol= file=LF_nul':
compare_ws_file eol__crlf_false_attr__ LF_nul crlf_false_attr__LF_nul.txt
ok 901 - checkout attr= aeol=lf core.autocrlf=false core.eol= file=LF_nul
expecting success of 0027.902 'ls-files --eol attr= aeol=crlf 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 902 - ls-files --eol attr= aeol=crlf core.autocrlf=false core.eol=
expecting success of 0027.903 'checkout attr= aeol=crlf core.autocrlf=false core.eol= file=LF':
compare_ws_file eol__crlf_false_attr__ CRLF crlf_false_attr__LF.txt
ok 903 - checkout attr= aeol=crlf core.autocrlf=false core.eol= file=LF
expecting success of 0027.904 'checkout attr= aeol=crlf core.autocrlf=false core.eol= file=CRLF':
compare_ws_file eol__crlf_false_attr__ CRLF crlf_false_attr__CRLF.txt
ok 904 - checkout attr= aeol=crlf core.autocrlf=false core.eol= file=CRLF
expecting success of 0027.905 'checkout attr= aeol=crlf core.autocrlf=false core.eol= file=CRLF_mix_LF':
compare_ws_file eol__crlf_false_attr__ CRLF crlf_false_attr__CRLF_mix_LF.txt
ok 905 - checkout attr= aeol=crlf core.autocrlf=false core.eol= file=CRLF_mix_LF
expecting success of 0027.906 'checkout attr= aeol=crlf core.autocrlf=false core.eol= file=LF_mix_CR':
compare_ws_file eol__crlf_false_attr__ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt
ok 906 - checkout attr= aeol=crlf core.autocrlf=false core.eol= file=LF_mix_CR
expecting success of 0027.907 'checkout attr= aeol=crlf core.autocrlf=false core.eol= file=LF_nul':
compare_ws_file eol__crlf_false_attr__ CRLF_nul crlf_false_attr__LF_nul.txt
ok 907 - checkout attr= aeol=crlf core.autocrlf=false core.eol= file=LF_nul
expecting success of 0027.908 'ls-files --eol attr= aeol=lf core.autocrlf=true 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 908 - ls-files --eol attr= aeol=lf core.autocrlf=true core.eol=
expecting success of 0027.909 'checkout attr= aeol=lf core.autocrlf=true core.eol= file=LF':
compare_ws_file eol__crlf_true_attr__ LF crlf_false_attr__LF.txt
ok 909 - checkout attr= aeol=lf core.autocrlf=true core.eol= file=LF
expecting success of 0027.910 'checkout attr= aeol=lf core.autocrlf=true core.eol= file=CRLF':
compare_ws_file eol__crlf_true_attr__ CRLF crlf_false_attr__CRLF.txt
ok 910 - checkout attr= aeol=lf core.autocrlf=true core.eol= file=CRLF
expecting success of 0027.911 'checkout attr= aeol=lf core.autocrlf=true core.eol= file=CRLF_mix_LF':
compare_ws_file eol__crlf_true_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
ok 911 - checkout attr= aeol=lf core.autocrlf=true core.eol= file=CRLF_mix_LF
expecting success of 0027.912 'checkout attr= aeol=lf core.autocrlf=true core.eol= file=LF_mix_CR':
compare_ws_file eol__crlf_true_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt
ok 912 - checkout attr= aeol=lf core.autocrlf=true core.eol= file=LF_mix_CR
expecting success of 0027.913 'checkout attr= aeol=lf core.autocrlf=true core.eol= file=LF_nul':
compare_ws_file eol__crlf_true_attr__ LF_nul crlf_false_attr__LF_nul.txt
ok 913 - checkout attr= aeol=lf core.autocrlf=true core.eol= file=LF_nul
expecting success of 0027.914 'ls-files --eol attr= aeol=crlf core.autocrlf=true 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 914 - ls-files --eol attr= aeol=crlf core.autocrlf=true core.eol=
expecting success of 0027.915 'checkout attr= aeol=crlf core.autocrlf=true core.eol= file=LF':
compare_ws_file eol__crlf_true_attr__ CRLF crlf_false_attr__LF.txt
ok 915 - checkout attr= aeol=crlf core.autocrlf=true core.eol= file=LF
expecting success of 0027.916 'checkout attr= aeol=crlf core.autocrlf=true core.eol= file=CRLF':
compare_ws_file eol__crlf_true_attr__ CRLF crlf_false_attr__CRLF.txt
ok 916 - checkout attr= aeol=crlf core.autocrlf=true core.eol= file=CRLF
expecting success of 0027.917 'checkout attr= aeol=crlf core.autocrlf=true core.eol= file=CRLF_mix_LF':
compare_ws_file eol__crlf_true_attr__ CRLF crlf_false_attr__CRLF_mix_LF.txt
ok 917 - checkout attr= aeol=crlf core.autocrlf=true core.eol= file=CRLF_mix_LF
expecting success of 0027.918 'checkout attr= aeol=crlf core.autocrlf=true core.eol= file=LF_mix_CR':
compare_ws_file eol__crlf_true_attr__ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt
ok 918 - checkout attr= aeol=crlf core.autocrlf=true core.eol= file=LF_mix_CR
expecting success of 0027.919 'checkout attr= aeol=crlf core.autocrlf=true core.eol= file=LF_nul':
compare_ws_file eol__crlf_true_attr__ CRLF_nul crlf_false_attr__LF_nul.txt
ok 919 - checkout attr= aeol=crlf core.autocrlf=true core.eol= file=LF_nul
expecting success of 0027.920 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 920 - ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=lf
expecting success of 0027.921 '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 921 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF
expecting success of 0027.922 '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 922 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=CRLF
expecting success of 0027.923 '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 923 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF
expecting success of 0027.924 '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 924 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR
expecting success of 0027.925 '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 925 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF_nul
expecting success of 0027.926 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 926 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=lf
expecting success of 0027.927 '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 927 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF
expecting success of 0027.928 '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 928 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF
expecting success of 0027.929 '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 929 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF
expecting success of 0027.930 '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 930 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR
expecting success of 0027.931 '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 931 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul
expecting success of 0027.932 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 932 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf
expecting success of 0027.933 '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 933 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF
expecting success of 0027.934 '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 934 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF
expecting success of 0027.935 '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 935 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF
expecting success of 0027.936 '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 936 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR
expecting success of 0027.937 '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 937 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul
expecting success of 0027.938 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 938 - ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=lf
expecting success of 0027.939 '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 939 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF
expecting success of 0027.940 '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 940 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF
expecting success of 0027.941 '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 941 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF
expecting success of 0027.942 '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 942 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR
expecting success of 0027.943 '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 943 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul
expecting success of 0027.944 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 944 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=lf
expecting success of 0027.945 '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 945 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF
expecting success of 0027.946 '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 946 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF
expecting success of 0027.947 '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 947 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF
expecting success of 0027.948 '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 948 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR
expecting success of 0027.949 '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 949 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul
expecting success of 0027.950 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 950 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=lf
expecting success of 0027.951 '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 951 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF
expecting success of 0027.952 '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 952 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF
expecting success of 0027.953 '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 953 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF
expecting success of 0027.954 '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 954 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR
expecting success of 0027.955 '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 955 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul
expecting success of 0027.956 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 956 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf
expecting success of 0027.957 '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 957 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF
expecting success of 0027.958 '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 958 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF
expecting success of 0027.959 '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 959 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF
expecting success of 0027.960 '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 960 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR
expecting success of 0027.961 '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 961 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul
expecting success of 0027.962 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 962 - ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=lf
expecting success of 0027.963 '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 963 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF
expecting success of 0027.964 '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 964 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=CRLF
expecting success of 0027.965 '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 965 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF
expecting success of 0027.966 '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 966 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR
expecting success of 0027.967 '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 967 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF_nul
expecting success of 0027.968 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 968 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=lf
expecting success of 0027.969 '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 969 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF
expecting success of 0027.970 '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 970 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF
expecting success of 0027.971 '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 971 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF
expecting success of 0027.972 '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 972 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR
expecting success of 0027.973 '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 973 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul
expecting success of 0027.974 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 974 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf
expecting success of 0027.975 '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 975 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF
expecting success of 0027.976 '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 976 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF
expecting success of 0027.977 '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 977 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF
expecting success of 0027.978 '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 978 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR
expecting success of 0027.979 '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 979 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul
expecting success of 0027.980 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 980 - ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=lf
expecting success of 0027.981 '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 981 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF
expecting success of 0027.982 '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 982 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF
expecting success of 0027.983 '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 983 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF
expecting success of 0027.984 '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 984 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR
expecting success of 0027.985 '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 985 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul
expecting success of 0027.986 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 986 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=lf
expecting success of 0027.987 '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 987 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF
expecting success of 0027.988 '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 988 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF
expecting success of 0027.989 '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 989 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF
expecting success of 0027.990 '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 990 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR
expecting success of 0027.991 '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 991 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul
expecting success of 0027.992 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 992 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=lf
expecting success of 0027.993 '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 993 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF
expecting success of 0027.994 '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 994 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF
expecting success of 0027.995 '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 995 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF
expecting success of 0027.996 '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 996 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR
expecting success of 0027.997 '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 997 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul
expecting success of 0027.998 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 998 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf
expecting success of 0027.999 '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 999 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF
expecting success of 0027.1000 '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 1000 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF
expecting success of 0027.1001 '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 1001 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF
expecting success of 0027.1002 '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 1002 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR
expecting success of 0027.1003 '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 1003 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul
expecting success of 0027.1004 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1004 - ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=lf
expecting success of 0027.1005 '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 1005 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF
expecting success of 0027.1006 '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 1006 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=CRLF
expecting success of 0027.1007 '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 1007 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF
expecting success of 0027.1008 '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 1008 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR
expecting success of 0027.1009 '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 1009 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF_nul
expecting success of 0027.1010 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1010 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=lf
expecting success of 0027.1011 '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 1011 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF
expecting success of 0027.1012 '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 1012 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF
expecting success of 0027.1013 '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 1013 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF
expecting success of 0027.1014 '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 1014 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR
expecting success of 0027.1015 '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 1015 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul
expecting success of 0027.1016 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1016 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf
expecting success of 0027.1017 '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 1017 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF
expecting success of 0027.1018 '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 1018 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF
expecting success of 0027.1019 '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 1019 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF
expecting success of 0027.1020 '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 1020 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR
expecting success of 0027.1021 '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 1021 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul
expecting success of 0027.1022 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1022 - ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=lf
expecting success of 0027.1023 '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 1023 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF
expecting success of 0027.1024 '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 1024 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF
expecting success of 0027.1025 '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 1025 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF
expecting success of 0027.1026 '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 1026 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR
expecting success of 0027.1027 '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 1027 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul
expecting success of 0027.1028 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1028 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=lf
expecting success of 0027.1029 '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 1029 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF
expecting success of 0027.1030 '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 1030 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF
expecting success of 0027.1031 '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 1031 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF
expecting success of 0027.1032 '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 1032 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR
expecting success of 0027.1033 '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 1033 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul
expecting success of 0027.1034 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1034 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=lf
expecting success of 0027.1035 '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 1035 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF
expecting success of 0027.1036 '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 1036 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF
expecting success of 0027.1037 '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 1037 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF
expecting success of 0027.1038 '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 1038 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR
expecting success of 0027.1039 '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 1039 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul
expecting success of 0027.1040 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1040 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf
expecting success of 0027.1041 '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 1041 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF
expecting success of 0027.1042 '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 1042 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF
expecting success of 0027.1043 '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 1043 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF
expecting success of 0027.1044 '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 1044 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR
expecting success of 0027.1045 '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 1045 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul
expecting success of 0027.1046 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1046 - ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=lf
expecting success of 0027.1047 '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 1047 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF
expecting success of 0027.1048 '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 1048 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=CRLF
expecting success of 0027.1049 '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 1049 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF
expecting success of 0027.1050 '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 1050 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR
expecting success of 0027.1051 '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 1051 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF_nul
expecting success of 0027.1052 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1052 - ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=lf
expecting success of 0027.1053 '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 1053 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF
expecting success of 0027.1054 '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 1054 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=CRLF
expecting success of 0027.1055 '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 1055 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF
expecting success of 0027.1056 '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 1056 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR
expecting success of 0027.1057 '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 1057 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF_nul
expecting success of 0027.1058 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1058 - ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=lf
expecting success of 0027.1059 '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 1059 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF
expecting success of 0027.1060 '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 1060 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=CRLF
expecting success of 0027.1061 '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 1061 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF
expecting success of 0027.1062 '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 1062 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR
expecting success of 0027.1063 '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 1063 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF_nul
expecting success of 0027.1064 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1064 - ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=lf
expecting success of 0027.1065 '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 1065 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF
expecting success of 0027.1066 '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 1066 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=CRLF
expecting success of 0027.1067 '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 1067 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF
expecting success of 0027.1068 '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 1068 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR
expecting success of 0027.1069 '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 1069 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF_nul
expecting success of 0027.1070 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1070 - ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=lf
expecting success of 0027.1071 '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 1071 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF
expecting success of 0027.1072 '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 1072 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=CRLF
expecting success of 0027.1073 '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 1073 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF
expecting success of 0027.1074 '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 1074 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR
expecting success of 0027.1075 '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 1075 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF_nul
expecting success of 0027.1076 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1076 - ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=lf
expecting success of 0027.1077 '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 1077 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF
expecting success of 0027.1078 '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 1078 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=CRLF
expecting success of 0027.1079 '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 1079 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF
expecting success of 0027.1080 '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 1080 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR
expecting success of 0027.1081 '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 1081 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF_nul
expecting success of 0027.1082 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1082 - ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=crlf
expecting success of 0027.1083 '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 1083 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF
expecting success of 0027.1084 '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 1084 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF
expecting success of 0027.1085 '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 1085 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1086 '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 1086 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR
expecting success of 0027.1087 '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 1087 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul
expecting success of 0027.1088 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1088 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf
expecting success of 0027.1089 '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 1089 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF
expecting success of 0027.1090 '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 1090 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF
expecting success of 0027.1091 '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 1091 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1092 '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 1092 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR
expecting success of 0027.1093 '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 1093 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul
expecting success of 0027.1094 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1094 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf
expecting success of 0027.1095 '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 1095 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF
expecting success of 0027.1096 '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 1096 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF
expecting success of 0027.1097 '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 1097 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1098 '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 1098 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR
expecting success of 0027.1099 '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 1099 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul
expecting success of 0027.1100 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1100 - ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=crlf
expecting success of 0027.1101 '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 1101 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF
expecting success of 0027.1102 '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 1102 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF
expecting success of 0027.1103 '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 1103 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1104 '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 1104 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR
expecting success of 0027.1105 '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 1105 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul
expecting success of 0027.1106 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1106 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf
expecting success of 0027.1107 '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 1107 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF
expecting success of 0027.1108 '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 1108 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF
expecting success of 0027.1109 '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 1109 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1110 '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 1110 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR
expecting success of 0027.1111 '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 1111 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul
expecting success of 0027.1112 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1112 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf
expecting success of 0027.1113 '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 1113 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF
expecting success of 0027.1114 '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 1114 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF
expecting success of 0027.1115 '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 1115 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1116 '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 1116 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR
expecting success of 0027.1117 '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 1117 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul
expecting success of 0027.1118 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1118 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf
expecting success of 0027.1119 '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 1119 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF
expecting success of 0027.1120 '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 1120 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF
expecting success of 0027.1121 '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 1121 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1122 '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 1122 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR
expecting success of 0027.1123 '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 1123 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul
expecting success of 0027.1124 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1124 - ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=crlf
expecting success of 0027.1125 '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 1125 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=LF
expecting success of 0027.1126 '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 1126 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF
expecting success of 0027.1127 '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 1127 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1128 '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 1128 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR
expecting success of 0027.1129 '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 1129 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul
expecting success of 0027.1130 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1130 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf
expecting success of 0027.1131 '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 1131 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF
expecting success of 0027.1132 '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 1132 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF
expecting success of 0027.1133 '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 1133 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1134 '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 1134 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR
expecting success of 0027.1135 '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 1135 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul
expecting success of 0027.1136 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1136 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf
expecting success of 0027.1137 '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 1137 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF
expecting success of 0027.1138 '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 1138 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF
expecting success of 0027.1139 '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 1139 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1140 '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 1140 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR
expecting success of 0027.1141 '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 1141 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul
expecting success of 0027.1142 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1142 - ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=crlf
expecting success of 0027.1143 '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 1143 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF
expecting success of 0027.1144 '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 1144 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF
expecting success of 0027.1145 '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 1145 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1146 '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 1146 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR
expecting success of 0027.1147 '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 1147 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul
expecting success of 0027.1148 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1148 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf
expecting success of 0027.1149 '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 1149 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF
expecting success of 0027.1150 '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 1150 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF
expecting success of 0027.1151 '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 1151 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1152 '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 1152 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR
expecting success of 0027.1153 '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 1153 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul
expecting success of 0027.1154 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1154 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf
expecting success of 0027.1155 '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 1155 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF
expecting success of 0027.1156 '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 1156 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF
expecting success of 0027.1157 '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 1157 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1158 '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 1158 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR
expecting success of 0027.1159 '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 1159 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul
expecting success of 0027.1160 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1160 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf
expecting success of 0027.1161 '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 1161 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF
expecting success of 0027.1162 '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 1162 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF
expecting success of 0027.1163 '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 1163 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1164 '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 1164 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR
expecting success of 0027.1165 '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 1165 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul
expecting success of 0027.1166 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1166 - ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=crlf
expecting success of 0027.1167 '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 1167 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF
expecting success of 0027.1168 '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 1168 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF
expecting success of 0027.1169 '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 1169 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1170 '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 1170 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR
expecting success of 0027.1171 '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 1171 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul
expecting success of 0027.1172 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1172 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf
expecting success of 0027.1173 '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 1173 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF
expecting success of 0027.1174 '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 1174 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF
expecting success of 0027.1175 '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 1175 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1176 '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 1176 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR
expecting success of 0027.1177 '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 1177 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul
expecting success of 0027.1178 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1178 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf
expecting success of 0027.1179 '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 1179 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF
expecting success of 0027.1180 '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 1180 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF
expecting success of 0027.1181 '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 1181 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1182 '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 1182 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR
expecting success of 0027.1183 '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 1183 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul
expecting success of 0027.1184 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1184 - ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=crlf
expecting success of 0027.1185 '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 1185 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF
expecting success of 0027.1186 '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 1186 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF
expecting success of 0027.1187 '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 1187 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1188 '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 1188 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR
expecting success of 0027.1189 '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 1189 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul
expecting success of 0027.1190 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1190 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf
expecting success of 0027.1191 '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 1191 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF
expecting success of 0027.1192 '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 1192 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF
expecting success of 0027.1193 '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 1193 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1194 '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 1194 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR
expecting success of 0027.1195 '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 1195 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul
expecting success of 0027.1196 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1196 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf
expecting success of 0027.1197 '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 1197 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF
expecting success of 0027.1198 '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 1198 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF
expecting success of 0027.1199 '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 1199 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1200 '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 1200 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR
expecting success of 0027.1201 '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 1201 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul
expecting success of 0027.1202 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1202 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf
expecting success of 0027.1203 '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 1203 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF
expecting success of 0027.1204 '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 1204 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF
expecting success of 0027.1205 '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 1205 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1206 '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 1206 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR
expecting success of 0027.1207 '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 1207 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul
expecting success of 0027.1208 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1208 - ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=crlf
expecting success of 0027.1209 '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 1209 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF
expecting success of 0027.1210 '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 1210 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=CRLF
expecting success of 0027.1211 '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 1211 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1212 '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 1212 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR
expecting success of 0027.1213 '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 1213 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul
expecting success of 0027.1214 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1214 - ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=crlf
expecting success of 0027.1215 '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 1215 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF
expecting success of 0027.1216 '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 1216 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=CRLF
expecting success of 0027.1217 '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 1217 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1218 '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 1218 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR
expecting success of 0027.1219 '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 1219 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul
expecting success of 0027.1220 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1220 - ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=crlf
expecting success of 0027.1221 '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 1221 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF
expecting success of 0027.1222 '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 1222 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=CRLF
expecting success of 0027.1223 '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 1223 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1224 '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 1224 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR
expecting success of 0027.1225 '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 1225 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul
expecting success of 0027.1226 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1226 - ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=crlf
expecting success of 0027.1227 '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 1227 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF
expecting success of 0027.1228 '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 1228 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF
expecting success of 0027.1229 '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 1229 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1230 '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 1230 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR
expecting success of 0027.1231 '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 1231 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul
expecting success of 0027.1232 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1232 - ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=crlf
expecting success of 0027.1233 '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 1233 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF
expecting success of 0027.1234 '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 1234 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF
expecting success of 0027.1235 '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 1235 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1236 '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 1236 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR
expecting success of 0027.1237 '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 1237 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul
expecting success of 0027.1238 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1238 - ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=crlf
expecting success of 0027.1239 '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 1239 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF
expecting success of 0027.1240 '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 1240 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=CRLF
expecting success of 0027.1241 '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 1241 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1242 '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 1242 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR
expecting success of 0027.1243 '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 1243 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul
expecting success of 0027.1244 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1244 - ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=native
expecting success of 0027.1245 '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 1245 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF
expecting success of 0027.1246 '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 1246 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=CRLF
expecting success of 0027.1247 '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 1247 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF
expecting success of 0027.1248 '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 1248 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR
expecting success of 0027.1249 '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 1249 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF_nul
expecting success of 0027.1250 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1250 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=native
expecting success of 0027.1251 '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 1251 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF
expecting success of 0027.1252 '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 1252 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF
expecting success of 0027.1253 '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 1253 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF
expecting success of 0027.1254 '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 1254 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR
expecting success of 0027.1255 '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 1255 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul
expecting success of 0027.1256 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1256 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=native
expecting success of 0027.1257 '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 1257 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF
expecting success of 0027.1258 '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 1258 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF
expecting success of 0027.1259 '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 1259 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF
expecting success of 0027.1260 '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 1260 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR
expecting success of 0027.1261 '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 1261 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul
expecting success of 0027.1262 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1262 - ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=native
expecting success of 0027.1263 '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 1263 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF
expecting success of 0027.1264 '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 1264 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF
expecting success of 0027.1265 '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 1265 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF
expecting success of 0027.1266 '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 1266 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR
expecting success of 0027.1267 '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 1267 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul
expecting success of 0027.1268 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1268 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=native
expecting success of 0027.1269 '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 1269 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF
expecting success of 0027.1270 '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 1270 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF
expecting success of 0027.1271 '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 1271 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF
expecting success of 0027.1272 '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 1272 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR
expecting success of 0027.1273 '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 1273 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul
expecting success of 0027.1274 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1274 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=native
expecting success of 0027.1275 '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 1275 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF
expecting success of 0027.1276 '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 1276 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=CRLF
expecting success of 0027.1277 '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 1277 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF
expecting success of 0027.1278 '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 1278 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR
expecting success of 0027.1279 '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 1279 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul
expecting success of 0027.1280 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1280 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=native
expecting success of 0027.1281 '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 1281 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF
expecting success of 0027.1282 '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 1282 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF
expecting success of 0027.1283 '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 1283 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF
expecting success of 0027.1284 '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 1284 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR
expecting success of 0027.1285 '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 1285 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul
expecting success of 0027.1286 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1286 - ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=native
expecting success of 0027.1287 '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 1287 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF
expecting success of 0027.1288 '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 1288 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=CRLF
expecting success of 0027.1289 '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 1289 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF
expecting success of 0027.1290 '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 1290 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR
expecting success of 0027.1291 '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 1291 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF_nul
expecting success of 0027.1292 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1292 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=native
expecting success of 0027.1293 '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 1293 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF
expecting success of 0027.1294 '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 1294 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF
expecting success of 0027.1295 '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 1295 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF
expecting success of 0027.1296 '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 1296 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR
expecting success of 0027.1297 '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 1297 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul
expecting success of 0027.1298 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1298 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=native
expecting success of 0027.1299 '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 1299 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF
expecting success of 0027.1300 '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 1300 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF
expecting success of 0027.1301 '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 1301 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF
expecting success of 0027.1302 '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 1302 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR
expecting success of 0027.1303 '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 1303 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul
expecting success of 0027.1304 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1304 - ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=native
expecting success of 0027.1305 '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 1305 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF
expecting success of 0027.1306 '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 1306 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF
expecting success of 0027.1307 '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 1307 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF
expecting success of 0027.1308 '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 1308 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR
expecting success of 0027.1309 '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 1309 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul
expecting success of 0027.1310 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1310 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=native
expecting success of 0027.1311 '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 1311 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF
expecting success of 0027.1312 '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 1312 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF
expecting success of 0027.1313 '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 1313 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF
expecting success of 0027.1314 '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 1314 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR
expecting success of 0027.1315 '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 1315 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul
expecting success of 0027.1316 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1316 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=native
expecting success of 0027.1317 '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 1317 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF
expecting success of 0027.1318 '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 1318 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=CRLF
expecting success of 0027.1319 '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 1319 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF
expecting success of 0027.1320 '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 1320 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR
expecting success of 0027.1321 '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 1321 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul
expecting success of 0027.1322 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1322 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=native
expecting success of 0027.1323 '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 1323 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF
expecting success of 0027.1324 '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 1324 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF
expecting success of 0027.1325 '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 1325 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF
expecting success of 0027.1326 '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 1326 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR
expecting success of 0027.1327 '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 1327 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul
expecting success of 0027.1328 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1328 - ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=native
expecting success of 0027.1329 '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 1329 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF
expecting success of 0027.1330 '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 1330 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=CRLF
expecting success of 0027.1331 '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 1331 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF
expecting success of 0027.1332 '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 1332 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR
expecting success of 0027.1333 '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 1333 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF_nul
expecting success of 0027.1334 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1334 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=native
expecting success of 0027.1335 '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 1335 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF
expecting success of 0027.1336 '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 1336 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF
expecting success of 0027.1337 '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 1337 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF
expecting success of 0027.1338 '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 1338 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR
expecting success of 0027.1339 '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 1339 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul
expecting success of 0027.1340 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1340 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=native
expecting success of 0027.1341 '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 1341 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF
expecting success of 0027.1342 '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 1342 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF
expecting success of 0027.1343 '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 1343 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF
expecting success of 0027.1344 '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 1344 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR
expecting success of 0027.1345 '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 1345 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul
expecting success of 0027.1346 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1346 - ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=native
expecting success of 0027.1347 '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 1347 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF
expecting success of 0027.1348 '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 1348 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF
expecting success of 0027.1349 '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 1349 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF
expecting success of 0027.1350 '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 1350 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR
expecting success of 0027.1351 '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 1351 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul
expecting success of 0027.1352 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1352 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=native
expecting success of 0027.1353 '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 1353 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF
expecting success of 0027.1354 '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 1354 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF
expecting success of 0027.1355 '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 1355 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF
expecting success of 0027.1356 '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 1356 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR
expecting success of 0027.1357 '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 1357 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul
expecting success of 0027.1358 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1358 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=native
expecting success of 0027.1359 '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 1359 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF
expecting success of 0027.1360 '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 1360 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=CRLF
expecting success of 0027.1361 '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 1361 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF
expecting success of 0027.1362 '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 1362 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR
expecting success of 0027.1363 '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 1363 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul
expecting success of 0027.1364 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1364 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=native
expecting success of 0027.1365 '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 1365 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF
expecting success of 0027.1366 '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 1366 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF
expecting success of 0027.1367 '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 1367 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF
expecting success of 0027.1368 '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 1368 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR
expecting success of 0027.1369 '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 1369 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul
expecting success of 0027.1370 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1370 - ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=native
expecting success of 0027.1371 '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 1371 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF
expecting success of 0027.1372 '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 1372 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=CRLF
expecting success of 0027.1373 '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 1373 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF
expecting success of 0027.1374 '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 1374 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR
expecting success of 0027.1375 '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 1375 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF_nul
expecting success of 0027.1376 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1376 - ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=native
expecting success of 0027.1377 '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 1377 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF
expecting success of 0027.1378 '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 1378 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=CRLF
expecting success of 0027.1379 '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 1379 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF
expecting success of 0027.1380 '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 1380 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR
expecting success of 0027.1381 '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 1381 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF_nul
expecting success of 0027.1382 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1382 - ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=native
expecting success of 0027.1383 '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 1383 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF
expecting success of 0027.1384 '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 1384 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=CRLF
expecting success of 0027.1385 '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 1385 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF
expecting success of 0027.1386 '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 1386 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR
expecting success of 0027.1387 '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 1387 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF_nul
expecting success of 0027.1388 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1388 - ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=native
expecting success of 0027.1389 '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 1389 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF
expecting success of 0027.1390 '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 1390 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=CRLF
expecting success of 0027.1391 '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 1391 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF
expecting success of 0027.1392 '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 1392 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR
expecting success of 0027.1393 '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 1393 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF_nul
expecting success of 0027.1394 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1394 - ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=native
expecting success of 0027.1395 '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 1395 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF
expecting success of 0027.1396 '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 1396 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=CRLF
expecting success of 0027.1397 '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 1397 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF
expecting success of 0027.1398 '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 1398 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR
expecting success of 0027.1399 '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 1399 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF_nul
expecting success of 0027.1400 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1400 - ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=native
expecting success of 0027.1401 '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 1401 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF
expecting success of 0027.1402 '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 1402 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=CRLF
expecting success of 0027.1403 '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 1403 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF
expecting success of 0027.1404 '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 1404 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR
expecting success of 0027.1405 '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 1405 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF_nul
expecting success of 0027.1406 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1406 - ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=crlf
expecting success of 0027.1407 '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 1407 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF
expecting success of 0027.1408 '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 1408 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF
expecting success of 0027.1409 '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 1409 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF
expecting success of 0027.1410 '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 1410 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR
expecting success of 0027.1411 '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 1411 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul
expecting success of 0027.1412 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1412 - ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=lf
expecting success of 0027.1413 '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 1413 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF
expecting success of 0027.1414 '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 1414 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=CRLF
expecting success of 0027.1415 '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 1415 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF
expecting success of 0027.1416 '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 1416 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR
expecting success of 0027.1417 '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 1417 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF_nul
expecting success of 0027.1418 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1418 - ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=
expecting success of 0027.1419 '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 1419 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF
expecting success of 0027.1420 '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 1420 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=CRLF
expecting success of 0027.1421 '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 1421 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF
expecting success of 0027.1422 '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 1422 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF_mix_CR
expecting success of 0027.1423 '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 1423 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF_nul
expecting success of 0027.1424 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1424 - ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=native
expecting success of 0027.1425 '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 1425 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF
expecting success of 0027.1426 '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 1426 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=CRLF
expecting success of 0027.1427 '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 1427 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF
expecting success of 0027.1428 '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 1428 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR
expecting success of 0027.1429 '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 1429 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF_nul
expecting success of 0027.1430 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1430 - ls-files --eol attr=auto ident aeol= core.autocrlf=false core.eol=
expecting success of 0027.1431 '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 1431 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF
expecting success of 0027.1432 '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 1432 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=CRLF
expecting success of 0027.1433 '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 1433 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF
expecting success of 0027.1434 '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 1434 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF_mix_CR
expecting success of 0027.1435 '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 1435 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF_nul
expecting success of 0027.1436 '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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1436 - ls-files --eol attr=auto ident aeol= core.autocrlf=false core.eol=native
expecting success of 0027.1437 '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 1437 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF
expecting success of 0027.1438 '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 1438 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=CRLF
expecting success of 0027.1439 '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 1439 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF
expecting success of 0027.1440 '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 1440 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR
expecting success of 0027.1441 '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 1441 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF_nul
expecting success of 0027.1442 'ls-files --eol attr= ident aeol=lf 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1442 - ls-files --eol attr= ident aeol=lf core.autocrlf=false core.eol=
expecting success of 0027.1443 'checkout attr= ident aeol=lf core.autocrlf=false core.eol= file=LF':
compare_ws_file eol__crlf_false_attr__ LF crlf_false_attr__LF.txt
ok 1443 - checkout attr= ident aeol=lf core.autocrlf=false core.eol= file=LF
expecting success of 0027.1444 'checkout attr= ident aeol=lf core.autocrlf=false core.eol= file=CRLF':
compare_ws_file eol__crlf_false_attr__ CRLF crlf_false_attr__CRLF.txt
ok 1444 - checkout attr= ident aeol=lf core.autocrlf=false core.eol= file=CRLF
expecting success of 0027.1445 'checkout attr= ident aeol=lf core.autocrlf=false core.eol= file=CRLF_mix_LF':
compare_ws_file eol__crlf_false_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
ok 1445 - checkout attr= ident aeol=lf core.autocrlf=false core.eol= file=CRLF_mix_LF
expecting success of 0027.1446 'checkout attr= ident aeol=lf core.autocrlf=false core.eol= file=LF_mix_CR':
compare_ws_file eol__crlf_false_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt
ok 1446 - checkout attr= ident aeol=lf core.autocrlf=false core.eol= file=LF_mix_CR
expecting success of 0027.1447 'checkout attr= ident aeol=lf core.autocrlf=false core.eol= file=LF_nul':
compare_ws_file eol__crlf_false_attr__ LF_nul crlf_false_attr__LF_nul.txt
ok 1447 - checkout attr= ident aeol=lf core.autocrlf=false core.eol= file=LF_nul
expecting success of 0027.1448 'ls-files --eol attr= ident aeol=crlf 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1448 - ls-files --eol attr= ident aeol=crlf core.autocrlf=false core.eol=
expecting success of 0027.1449 'checkout attr= ident aeol=crlf core.autocrlf=false core.eol= file=LF':
compare_ws_file eol__crlf_false_attr__ CRLF crlf_false_attr__LF.txt
ok 1449 - checkout attr= ident aeol=crlf core.autocrlf=false core.eol= file=LF
expecting success of 0027.1450 'checkout attr= ident aeol=crlf core.autocrlf=false core.eol= file=CRLF':
compare_ws_file eol__crlf_false_attr__ CRLF crlf_false_attr__CRLF.txt
ok 1450 - checkout attr= ident aeol=crlf core.autocrlf=false core.eol= file=CRLF
expecting success of 0027.1451 'checkout attr= ident aeol=crlf core.autocrlf=false core.eol= file=CRLF_mix_LF':
compare_ws_file eol__crlf_false_attr__ CRLF crlf_false_attr__CRLF_mix_LF.txt
ok 1451 - checkout attr= ident aeol=crlf core.autocrlf=false core.eol= file=CRLF_mix_LF
expecting success of 0027.1452 'checkout attr= ident aeol=crlf core.autocrlf=false core.eol= file=LF_mix_CR':
compare_ws_file eol__crlf_false_attr__ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt
ok 1452 - checkout attr= ident aeol=crlf core.autocrlf=false core.eol= file=LF_mix_CR
expecting success of 0027.1453 'checkout attr= ident aeol=crlf core.autocrlf=false core.eol= file=LF_nul':
compare_ws_file eol__crlf_false_attr__ CRLF_nul crlf_false_attr__LF_nul.txt
ok 1453 - checkout attr= ident aeol=crlf core.autocrlf=false core.eol= file=LF_nul
expecting success of 0027.1454 'ls-files --eol attr= ident aeol=lf core.autocrlf=true 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1454 - ls-files --eol attr= ident aeol=lf core.autocrlf=true core.eol=
expecting success of 0027.1455 'checkout attr= ident aeol=lf core.autocrlf=true core.eol= file=LF':
compare_ws_file eol__crlf_true_attr__ LF crlf_false_attr__LF.txt
ok 1455 - checkout attr= ident aeol=lf core.autocrlf=true core.eol= file=LF
expecting success of 0027.1456 'checkout attr= ident aeol=lf core.autocrlf=true core.eol= file=CRLF':
compare_ws_file eol__crlf_true_attr__ CRLF crlf_false_attr__CRLF.txt
ok 1456 - checkout attr= ident aeol=lf core.autocrlf=true core.eol= file=CRLF
expecting success of 0027.1457 'checkout attr= ident aeol=lf core.autocrlf=true core.eol= file=CRLF_mix_LF':
compare_ws_file eol__crlf_true_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt
ok 1457 - checkout attr= ident aeol=lf core.autocrlf=true core.eol= file=CRLF_mix_LF
expecting success of 0027.1458 'checkout attr= ident aeol=lf core.autocrlf=true core.eol= file=LF_mix_CR':
compare_ws_file eol__crlf_true_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt
ok 1458 - checkout attr= ident aeol=lf core.autocrlf=true core.eol= file=LF_mix_CR
expecting success of 0027.1459 'checkout attr= ident aeol=lf core.autocrlf=true core.eol= file=LF_nul':
compare_ws_file eol__crlf_true_attr__ LF_nul crlf_false_attr__LF_nul.txt
ok 1459 - checkout attr= ident aeol=lf core.autocrlf=true core.eol= file=LF_nul
expecting success of 0027.1460 'ls-files --eol attr= ident aeol=crlf core.autocrlf=true 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__* >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1460 - ls-files --eol attr= ident aeol=crlf core.autocrlf=true core.eol=
expecting success of 0027.1461 'checkout attr= ident aeol=crlf core.autocrlf=true core.eol= file=LF':
compare_ws_file eol__crlf_true_attr__ CRLF crlf_false_attr__LF.txt
ok 1461 - checkout attr= ident aeol=crlf core.autocrlf=true core.eol= file=LF
expecting success of 0027.1462 'checkout attr= ident aeol=crlf core.autocrlf=true core.eol= file=CRLF':
compare_ws_file eol__crlf_true_attr__ CRLF crlf_false_attr__CRLF.txt
ok 1462 - checkout attr= ident aeol=crlf core.autocrlf=true core.eol= file=CRLF
expecting success of 0027.1463 'checkout attr= ident aeol=crlf core.autocrlf=true core.eol= file=CRLF_mix_LF':
compare_ws_file eol__crlf_true_attr__ CRLF crlf_false_attr__CRLF_mix_LF.txt
ok 1463 - checkout attr= ident aeol=crlf core.autocrlf=true core.eol= file=CRLF_mix_LF
expecting success of 0027.1464 'checkout attr= ident aeol=crlf core.autocrlf=true core.eol= file=LF_mix_CR':
compare_ws_file eol__crlf_true_attr__ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt
ok 1464 - checkout attr= ident aeol=crlf core.autocrlf=true core.eol= file=LF_mix_CR
expecting success of 0027.1465 'checkout attr= ident aeol=crlf core.autocrlf=true core.eol= file=LF_nul':
compare_ws_file eol__crlf_true_attr__ CRLF_nul crlf_false_attr__LF_nul.txt
ok 1465 - checkout attr= ident aeol=crlf core.autocrlf=true core.eol= file=LF_nul
expecting success of 0027.1466 '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 >tmp &&
sed -e "s!attr/[^ ]*!!g" -e "s/ / /g" -e "s/ */ /g" tmp |
sort >actual &&
test_cmp expect actual
ok 1466 - ls-files --eol -d -z
# passed all 1466 test(s)
1..1466
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1301-shared-repo.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
)
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 1301.2 'shared=1 does not clear bits preset by umask 002':
test_when_finished "rm -rf sub" &&
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
Initialized empty shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/sub/.git/
ok 2 - shared=1 does not clear bits preset by umask 002
expecting success of 1301.3 'shared=1 does not clear bits preset by umask 022':
test_when_finished "rm -rf sub" &&
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
Initialized empty shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/sub/.git/
ok 3 - shared=1 does not clear bits preset by umask 022
expecting success of 1301.4 'shared=all':
git init --template= --shared=all &&
test 2 = $(git config core.sharedrepository)
Reinitialized existing shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/.git/
ok 4 - shared=all
expecting success of 1301.5 'update-server-info honors core.sharedRepository':
: > a1 &&
git add a1 &&
test_tick &&
git commit -m a1 &&
mkdir .git/info &&
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
[main (root-commit) a2bd363] a1
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a1
ok 5 - update-server-info honors core.sharedRepository
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/main)" &&
case "$actual" in
-rw-rw-*)
: happy
;;
*)
echo Ooops, .git/logs/refs/heads/main is not 066x [$actual]
false
;;
esac
ok 17 - git reflog expire honors core.sharedRepository
expecting success of 1301.18 'forced modes':
test_when_finished "rm -rf new" &&
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 &&
test_path_is_file .git/hooks/post-update &&
>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)"
Initialized empty shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/new/.git/
[main (root-commit) e4c5dc6] initial
Author: A U Thor <author@example.com>
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':
test_when_finished "rm -rf child.git" &&
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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/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 /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/.git/
ok 20 - re-init respects core.sharedrepository (local)
expecting success of 1301.21 're-init respects core.sharedrepository (remote)':
test_when_finished "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
Initialized empty shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/child.git/
Reinitialized existing shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/child.git/
ok 21 - re-init respects core.sharedrepository (remote)
expecting success of 1301.22 'template can set core.sharedrepository':
test_when_finished "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
Initialized empty shared Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1301-shared-repo/child.git/
ok 22 - template can set core.sharedrepository
# passed all 22 test(s)
1..22
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1302-repo-version.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 /<<PKGBUILDDIR>>/t/trash directory.t1302-repo-version/test/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1302-repo-version/test2/.git/
ok 1 - setup
expecting success of 1302.2 'gitdir selection on normal repos':
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 extension 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 extension 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 <author@example.com>
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1304-default-acl.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 | grep -E "mask::?rw-"
then
test_set_prereq SETFACL
fi
t1304-default-acl.sh: 4: eval: setfacl: 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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1303-wacky-config.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1305-config-include.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1305-config-include/real-home/foo/.git/
ok 25 - conditional include, set up symlinked $HOME
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 main &&
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 'main'
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 git -C cycle config --get-all test.value 2>stderr &&
grep "exceeded maximum include depth" stderr
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1305-config-include/cycle/
fatal: exceeded maximum include depth (10) while including
ok 33 - include cycles are detected
# passed all 33 test(s)
1..33
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1306-xdg-files.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
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 4 - "$XDG_CONFIG_HOME overrides $HOME/.config/git
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
ok 5 - read with --get: xdg file exists and ~/.gitconfig exists
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
ok 6 - read with --list: xdg file exists and ~/.gitconfig doesn't
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 7 - read with --list: xdg file exists and ~/.gitconfig exists
expecting success of 1306.8 'Setup':
git init git &&
cd git &&
echo foo >to_be_excluded
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 --others >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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1307-config-blob.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <author@example.com>
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 [<options>]
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 <file> use given config file
--blob <blob-id> 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 <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 <value> 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 <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
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':
test_commit --printf CR config "[some]key = value\\r" &&
echo value >expect &&
git config --blob=HEAD:config some.key >actual &&
test_cmp expect actual
[master f02e06a] CR
Author: A U Thor <author@example.com>
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1308-config-set.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
ok 1 - setup default config
expecting success of 1308.2 'get value for a simple key':
check_config get_value case.penguin "very blue"
ok 2 - get value for a simple key
expecting success of 1308.3 'get value for a key with value as an empty string':
check_config get_value case.my ""
ok 3 - get value for a key with value as an empty string
expecting success of 1308.4 'get value for a key with value as NULL':
check_config get_value case.foo "(NULL)"
ok 4 - get value for a key with value as NULL
expecting success of 1308.5 'upper case key':
check_config get_value case.UPPERCASE "true" &&
check_config get_value case.uppercase "true"
ok 5 - upper case key
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"
ok 6 - mixed case key
expecting success of 1308.7 'key and value with mixed case':
check_config get_value case.Movie "BadPhysics"
ok 7 - key and value with mixed case
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 8 - key with case sensitive subsection
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"
ok 9 - key with case insensitive section header
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"
ok 10 - key with case insensitive section header & variable
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\""
ok 11 - find value with misspelled key
expecting success of 1308.12 'find value with the highest priority':
check_config get_value case.baz "hask"
ok 12 - find value with the highest priority
expecting success of 1308.13 'find integer value for a key':
check_config get_int lamb.chop 65
ok 13 - find integer value for a key
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\""
ok 14 - find string value for a key
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
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 1308.16 'find integer if value is non parse-able':
check_config expect_code 128 get_int lamb.head
fatal: bad numeric config value 'none' for 'lamb.head': invalid unit
ok 16 - find integer if value is non parse-able
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
ok 17 - find bool value for the entered key
expecting success of 1308.18 'find multiple values':
check_config get_value_multi case.baz sam bat hask
ok 18 - find multiple values
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
ok 19 - find value from a configset
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
ok 20 - find value with highest priority from a configset
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
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"
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 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_cmp 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_cmp 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 &&
[alias]
br
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
key=ignore.this
value=please
origin=file
name=.git/config
lno=2
scope=local
key=foo.bar
value=from-repo
origin=file
name=.git/config
lno=3
scope=local
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 29 - iteration shows correct origins
# passed all 29 test(s)
1..29
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1309-early-config.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 sub &&
test-tool config read_early_config early.config
) >output &&
test sub = "$(cat output)"
ok 2 - in a sub-directory
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
ok 3 - ceiling
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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 /<<PKGBUILDDIR>>/t/trash directory.t1309-early-config/throwaway/.git/
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"
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
checking known breakage of 1309.8 'ignore .git/ with invalid config':
test_with_config "["
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 1309.9 'early config and onbranch':
echo "[broken" >broken &&
test_with_config "[includeif \"onbranch:topic\"]path=../broken"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1309-early-config/throwaway/.git/
ok 9 - early config and onbranch
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 [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
[--config-env=<name>=<envvar>] <command> [<args>]
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
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 <command>' or 'git help <concept>'
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1310-config-default.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 - uses --default when entry missing
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
ok 2 - does not use --default when entry present
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
fatal: failed to format default config value: x
ok 4 - dies when --default cannot be parsed
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
error: --default is only applicable to --get
ok 5 - does not allow --default without --get
# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1350-config-hooks-path.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1350-config-hooks-path/.git/
expecting success of 1350.1 'set up a pre-commit hook in core.hooksPath':
>actual &&
mkdir -p .git/custom-hooks &&
write_script .git/custom-hooks/pre-commit <<-\EOF &&
echo CUSTOM >>actual
EOF
test_hook --setup pre-commit <<-\EOF
echo NORMAL >>actual
EOF
ok 1 - set up a pre-commit hook in core.hooksPath
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 (root-commit) 51fec20] no_custom_hook
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 no_custom_hook.t
[master d6f765a] have_custom_hook
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 have_custom_hook.t
[master c8447a6] have_custom_hook_trailing_slash
Author: A U Thor <author@example.com>
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 <author@example.com>
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 <author@example.com>
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 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)"
ok 3 - git rev-parse --git-path hooks
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1401-symbolic-ref.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1401-symbolic-ref/.git/
expecting success of 1401.1 'setup':
git symbolic-ref HEAD refs/heads/foo &&
test_commit file &&
"$TAR" cf .git.tar .git/
[foo (root-commit) 4c1911f] file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file.t
ok 1 - setup
expecting success of 1401.2 'symbolic-ref read/write roundtrip':
git symbolic-ref HEAD refs/heads/read-write-roundtrip &&
echo refs/heads/read-write-roundtrip >expect &&
git symbolic-ref HEAD >actual &&
test_cmp expect actual
ok 2 - symbolic-ref read/write roundtrip
expecting success of 1401.3 'symbolic-ref refuses non-ref for HEAD':
test_must_fail git symbolic-ref HEAD foo
fatal: Refusing to point HEAD outside of refs/
ok 3 - symbolic-ref refuses non-ref for HEAD
expecting success of 1401.4 'symbolic-ref refuses bare sha1':
test_must_fail git symbolic-ref HEAD $(git rev-parse HEAD)
fatal: Refusing to point HEAD outside of refs/
ok 4 - symbolic-ref refuses bare sha1
expecting success of 1401.5 'HEAD cannot be removed':
test_must_fail git symbolic-ref -d HEAD
fatal: deleting 'HEAD' is not allowed
ok 5 - HEAD cannot be removed
expecting success of 1401.6 'symbolic-ref can be deleted':
git symbolic-ref NOTHEAD refs/heads/foo &&
git symbolic-ref -d NOTHEAD &&
git rev-parse refs/heads/foo &&
test_must_fail git symbolic-ref NOTHEAD
4c1911ffa61819af2268cf7c64ef8f9aa3c96d97
fatal: ref NOTHEAD is not a symbolic ref
ok 6 - symbolic-ref can be deleted
expecting success of 1401.7 'symbolic-ref can delete dangling symref':
git symbolic-ref NOTHEAD refs/heads/missing &&
git symbolic-ref -d NOTHEAD &&
test_must_fail git rev-parse refs/heads/missing &&
test_must_fail git symbolic-ref NOTHEAD
fatal: ambiguous argument 'refs/heads/missing': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
refs/heads/missing
fatal: ref NOTHEAD is not a symbolic ref
ok 7 - symbolic-ref can delete dangling symref
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
ok 8 - symbolic-ref fails to delete missing FOO
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
4c1911ffa61819af2268cf7c64ef8f9aa3c96d97
ok 9 - symbolic-ref fails to delete real ref
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
ok 10 - create large ref name
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
ok 11 - symbolic-ref can point to large ref name
expecting success of 1401.12 'we can parse long symbolic ref':
echo $commit >expect &&
git rev-parse --verify HEAD >actual &&
test_cmp expect actual
ok 12 - we can parse long symbolic ref
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
error: Unable to create '/<<PKGBUILDDIR>>/t/trash directory.t1401-symbolic-ref/.git/HEAD.lock': File exists.
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 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
Switched to a new branch 'log1'
[log1 aaba2f7] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
Switched to a new branch 'log2'
[log2 a5e11db] two
Author: A U Thor <author@example.com>
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 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
Switched to a new branch 'df'
[df b4cb97a] df
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 df.t
error: Unable to create '/<<PKGBUILDDIR>>/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 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
ok 16 - symbolic-ref can overwrite pointer to invalid name
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
ok 17 - symbolic-ref can resolve d/f name (EISDIR)
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
ok 18 - symbolic-ref can resolve d/f name (ENOTDIR)
expecting success of 1401.19 'symbolic-ref refuses invalid target for non-HEAD':
test_must_fail git symbolic-ref refs/heads/invalid foo..bar
fatal: Refusing to set 'refs/heads/invalid' to invalid ref 'foo..bar'
ok 19 - symbolic-ref refuses invalid target for non-HEAD
expecting success of 1401.20 'symbolic-ref allows top-level target for non-HEAD':
git symbolic-ref refs/heads/top-level FETCH_HEAD &&
git update-ref FETCH_HEAD HEAD &&
test_cmp_rev top-level HEAD
ok 20 - symbolic-ref allows top-level target for non-HEAD
expecting success of 1401.21 'symbolic-ref pointing at another':
git update-ref refs/heads/maint-2.37 HEAD &&
git symbolic-ref refs/heads/maint refs/heads/maint-2.37 &&
git checkout maint &&
git symbolic-ref HEAD >actual &&
echo refs/heads/maint-2.37 >expect &&
test_cmp expect actual &&
git symbolic-ref --no-recurse HEAD >actual &&
echo refs/heads/maint >expect &&
test_cmp expect actual
Switched to branch 'maint'
ok 21 - symbolic-ref pointing at another
expecting success of 1401.22 'symbolic-ref --short handles complex utf8 case':
name="测试-加-增加-加-增加" &&
git symbolic-ref TEST_SYMREF "refs/heads/$name" &&
# In the real world, we saw problems with this case only
# when the locale includes UTF-8. Set it here to try to make things as
# hard as possible for us to pass, but in practice we should do the
# right thing regardless (and of course some platforms may not even
# have this locale).
LC_ALL=en_US.UTF-8 git symbolic-ref --short TEST_SYMREF >actual &&
echo "$name" >expect &&
test_cmp expect actual
ok 22 - symbolic-ref --short handles complex utf8 case
expecting success of 1401.23 'symbolic-ref --short handles name with suffix':
git symbolic-ref TEST_SYMREF "refs/remotes/origin/HEAD" &&
git symbolic-ref --short TEST_SYMREF >actual &&
echo "origin" >expect &&
test_cmp expect actual
ok 23 - symbolic-ref --short handles name with suffix
expecting success of 1401.24 'symbolic-ref --short handles almost-matching name':
git symbolic-ref TEST_SYMREF "refs/headsXfoo" &&
git symbolic-ref --short TEST_SYMREF >actual &&
echo "headsXfoo" >expect &&
test_cmp expect actual
ok 24 - symbolic-ref --short handles almost-matching name
expecting success of 1401.25 'symbolic-ref --short handles name with percent':
git symbolic-ref TEST_SYMREF "refs/heads/%foo" &&
git symbolic-ref --short TEST_SYMREF >actual &&
echo "%foo" >expect &&
test_cmp expect actual
ok 25 - symbolic-ref --short handles name with percent
# passed all 25 test(s)
1..25
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1402-check-ref-format.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 1 - ref name '' is invalid
expecting success of 1402.2 'ref name '/' is invalid':
test_must_fail git check-ref-format '/'
ok 2 - ref name '/' is invalid
expecting success of 1402.3 'ref name '/' is invalid with options --allow-onelevel':
test_must_fail git check-ref-format --allow-onelevel '/'
ok 3 - ref name '/' is invalid with options --allow-onelevel
expecting success of 1402.4 'ref name '/' is invalid with options --normalize':
test_must_fail git check-ref-format --normalize '/'
ok 4 - ref name '/' is invalid with options --normalize
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 5 - ref name '/' is invalid with options --allow-onelevel --normalize
expecting success of 1402.6 'ref name 'foo/bar/baz' is valid':
git check-ref-format 'foo/bar/baz'
ok 6 - ref name 'foo/bar/baz' is valid
expecting success of 1402.7 'ref name 'foo/bar/baz' is valid with options --normalize':
git check-ref-format --normalize 'foo/bar/baz'
foo/bar/baz
ok 7 - ref name 'foo/bar/baz' is valid with options --normalize
expecting success of 1402.8 'ref name 'refs///heads/foo' is invalid':
test_must_fail git check-ref-format 'refs///heads/foo'
ok 8 - ref name 'refs///heads/foo' is invalid
expecting success of 1402.9 'ref name 'refs///heads/foo' is valid with options --normalize':
git check-ref-format --normalize 'refs///heads/foo'
refs/heads/foo
ok 9 - ref name 'refs///heads/foo' is valid with options --normalize
expecting success of 1402.10 'ref name 'heads/foo/' is invalid':
test_must_fail git check-ref-format 'heads/foo/'
ok 10 - ref name 'heads/foo/' is invalid
expecting success of 1402.11 'ref name '/heads/foo' is invalid':
test_must_fail git check-ref-format '/heads/foo'
ok 11 - ref name '/heads/foo' is invalid
expecting success of 1402.12 'ref name '/heads/foo' is valid with options --normalize':
git check-ref-format --normalize '/heads/foo'
heads/foo
ok 12 - ref name '/heads/foo' is valid with options --normalize
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
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
expecting success of 1402.15 'ref name './foo' is invalid':
test_must_fail git check-ref-format './foo'
ok 15 - ref name './foo' is invalid
expecting success of 1402.16 'ref name './foo/bar' is invalid':
test_must_fail git check-ref-format './foo/bar'
ok 16 - ref name './foo/bar' is invalid
expecting success of 1402.17 'ref name 'foo/./bar' is invalid':
test_must_fail git check-ref-format 'foo/./bar'
ok 17 - ref name 'foo/./bar' is invalid
expecting success of 1402.18 'ref name 'foo/bar/.' is invalid':
test_must_fail git check-ref-format 'foo/bar/.'
ok 18 - ref name 'foo/bar/.' is invalid
expecting success of 1402.19 'ref name '.refs/foo' is invalid':
test_must_fail git check-ref-format '.refs/foo'
ok 19 - ref name '.refs/foo' is invalid
expecting success of 1402.20 'ref name 'refs/heads/foo.' is invalid':
test_must_fail git check-ref-format 'refs/heads/foo.'
ok 20 - ref name 'refs/heads/foo.' is invalid
expecting success of 1402.21 'ref name 'heads/foo..bar' is invalid':
test_must_fail git check-ref-format 'heads/foo..bar'
ok 21 - ref name 'heads/foo..bar' is invalid
expecting success of 1402.22 'ref name 'heads/foo?bar' is invalid':
test_must_fail git check-ref-format 'heads/foo?bar'
ok 22 - ref name 'heads/foo?bar' is invalid
expecting success of 1402.23 'ref name 'foo./bar' is valid':
git check-ref-format 'foo./bar'
ok 23 - ref name 'foo./bar' is valid
expecting success of 1402.24 'ref name 'heads/foo.lock' is invalid':
test_must_fail git check-ref-format 'heads/foo.lock'
ok 24 - ref name 'heads/foo.lock' is invalid
expecting success of 1402.25 'ref name 'heads///foo.lock' is invalid':
test_must_fail git check-ref-format 'heads///foo.lock'
ok 25 - ref name 'heads///foo.lock' is invalid
expecting success of 1402.26 'ref name 'foo.lock/bar' is invalid':
test_must_fail git check-ref-format 'foo.lock/bar'
ok 26 - ref name 'foo.lock/bar' is invalid
expecting success of 1402.27 'ref name 'foo.lock///bar' is invalid':
test_must_fail git check-ref-format 'foo.lock///bar'
ok 27 - ref name 'foo.lock///bar' is invalid
expecting success of 1402.28 'ref name 'heads/foo@bar' is valid':
git check-ref-format 'heads/foo@bar'
ok 28 - ref name 'heads/foo@bar' is valid
expecting success of 1402.29 'ref name 'heads/v@{ation' is invalid':
test_must_fail git check-ref-format 'heads/v@{ation'
ok 29 - ref name 'heads/v@{ation' is invalid
expecting success of 1402.30 'ref name 'heads/foo\bar' is invalid':
test_must_fail git check-ref-format 'heads/foo\bar'
ok 30 - ref name 'heads/foo\bar' is invalid
expecting success of 1402.31 'ref name 'heads/foo ' is invalid':
test_must_fail git check-ref-format 'heads/foo '
ok 31 - ref name 'heads/foo ' is invalid
expecting success of 1402.32 'ref name 'heads/foo' is invalid':
test_must_fail git check-ref-format 'heads/foo'
ok 32 - ref name 'heads/foo' is invalid
expecting success of 1402.33 'ref name 'heads/fuß' is valid':
git check-ref-format 'heads/fuß'
ok 33 - ref name 'heads/fuß' is valid
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 34 - ref name 'heads/*foo/bar' is valid with options --refspec-pattern
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
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
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 37 - ref name 'heads/f*o*/bar' is invalid with options --refspec-pattern
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 38 - ref name 'heads/foo*/bar*' is invalid with options --refspec-pattern
expecting success of 1402.39 'ref name 'foo' is invalid':
test_must_fail git check-ref-format 'foo'
ok 39 - ref name 'foo' is invalid
expecting success of 1402.40 'ref name 'foo' is valid with options --allow-onelevel':
git check-ref-format --allow-onelevel 'foo'
ok 40 - ref name 'foo' is valid with options --allow-onelevel
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 41 - ref name 'foo' is invalid with options --refspec-pattern
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 42 - ref name 'foo' is valid with options --refspec-pattern --allow-onelevel
expecting success of 1402.43 'ref name 'foo' is invalid with options --normalize':
test_must_fail git check-ref-format --normalize 'foo'
ok 43 - ref name 'foo' is invalid with options --normalize
expecting success of 1402.44 'ref name 'foo' is valid with options --allow-onelevel --normalize':
git check-ref-format --allow-onelevel --normalize 'foo'
foo
ok 44 - ref name 'foo' is valid with options --allow-onelevel --normalize
expecting success of 1402.45 'ref name 'foo/bar' is valid':
git check-ref-format 'foo/bar'
ok 45 - ref name 'foo/bar' is valid
expecting success of 1402.46 'ref name 'foo/bar' is valid with options --allow-onelevel':
git check-ref-format --allow-onelevel 'foo/bar'
ok 46 - ref name 'foo/bar' is valid with options --allow-onelevel
expecting success of 1402.47 'ref name 'foo/bar' is valid with options --refspec-pattern':
git check-ref-format --refspec-pattern 'foo/bar'
ok 47 - ref name 'foo/bar' is valid with options --refspec-pattern
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 48 - ref name 'foo/bar' is valid with options --refspec-pattern --allow-onelevel
expecting success of 1402.49 'ref name 'foo/bar' is valid with options --normalize':
git check-ref-format --normalize 'foo/bar'
foo/bar
ok 49 - ref name 'foo/bar' is valid with options --normalize
expecting success of 1402.50 'ref name 'foo/*' is invalid':
test_must_fail git check-ref-format 'foo/*'
ok 50 - ref name 'foo/*' is invalid
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 51 - ref name 'foo/*' is invalid with options --allow-onelevel
expecting success of 1402.52 'ref name 'foo/*' is valid with options --refspec-pattern':
git check-ref-format --refspec-pattern 'foo/*'
ok 52 - ref name 'foo/*' is valid with options --refspec-pattern
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 53 - ref name 'foo/*' is valid with options --refspec-pattern --allow-onelevel
expecting success of 1402.54 'ref name '*/foo' is invalid':
test_must_fail git check-ref-format '*/foo'
ok 54 - ref name '*/foo' is invalid
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 55 - ref name '*/foo' is invalid with options --allow-onelevel
expecting success of 1402.56 'ref name '*/foo' is valid with options --refspec-pattern':
git check-ref-format --refspec-pattern '*/foo'
ok 56 - ref name '*/foo' is valid with options --refspec-pattern
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 57 - ref name '*/foo' is valid with options --refspec-pattern --allow-onelevel
expecting success of 1402.58 'ref name '*/foo' is invalid with options --normalize':
test_must_fail git check-ref-format --normalize '*/foo'
ok 58 - ref name '*/foo' is invalid with options --normalize
expecting success of 1402.59 'ref name '*/foo' is valid with options --refspec-pattern --normalize':
git check-ref-format --refspec-pattern --normalize '*/foo'
*/foo
ok 59 - ref name '*/foo' is valid with options --refspec-pattern --normalize
expecting success of 1402.60 'ref name 'foo/*/bar' is invalid':
test_must_fail git check-ref-format 'foo/*/bar'
ok 60 - ref name 'foo/*/bar' is invalid
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 61 - ref name 'foo/*/bar' is invalid with options --allow-onelevel
expecting success of 1402.62 'ref name 'foo/*/bar' is valid with options --refspec-pattern':
git check-ref-format --refspec-pattern 'foo/*/bar'
ok 62 - ref name 'foo/*/bar' is valid with options --refspec-pattern
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 63 - ref name 'foo/*/bar' is valid with options --refspec-pattern --allow-onelevel
expecting success of 1402.64 'ref name '*' is invalid':
test_must_fail git check-ref-format '*'
ok 64 - ref name '*' is invalid
expecting success of 1402.65 'ref name '*' is invalid with options --allow-onelevel':
test_must_fail git check-ref-format --allow-onelevel '*'
ok 65 - ref name '*' is invalid with options --allow-onelevel
expecting success of 1402.66 'ref name '*' is invalid with options --refspec-pattern':
test_must_fail git check-ref-format --refspec-pattern '*'
ok 66 - ref name '*' is invalid with options --refspec-pattern
expecting success of 1402.67 'ref name '*' is valid with options --refspec-pattern --allow-onelevel':
git check-ref-format --refspec-pattern --allow-onelevel '*'
ok 67 - ref name '*' is valid with options --refspec-pattern --allow-onelevel
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 68 - ref name 'foo/*/*' is invalid with options --refspec-pattern
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 69 - ref name 'foo/*/*' is invalid with options --refspec-pattern --allow-onelevel
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 70 - ref name '*/foo/*' is invalid with options --refspec-pattern
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 71 - ref name '*/foo/*' is invalid with options --refspec-pattern --allow-onelevel
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 72 - ref name '*/*/foo' is invalid with options --refspec-pattern
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
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
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 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
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 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
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 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
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
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/main $sha1 &&
git update-ref refs/remotes/origin/main $sha1 &&
git checkout main &&
git checkout origin/main &&
git checkout main &&
refname=$(git check-ref-format --branch @{-1}) &&
test "$refname" = "$sha1" &&
refname2=$(git check-ref-format --branch @{-2}) &&
test "$refname2" = main
Switched to branch 'main'
Note: switching to 'origin/main'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 58052da A
Switched to branch 'main'
ok 82 - check-ref-format --branch @{-1}
expecting success of 1402.83 'check-ref-format --branch -nain':
test_must_fail git check-ref-format --branch -nain >actual &&
test_must_be_empty actual
fatal: '-nain' is not a valid branch name
ok 83 - check-ref-format --branch -nain
expecting success of 1402.84 'check-ref-format --branch from subdir':
mkdir subdir &&
T=$(git write-tree) &&
sha1=$(echo A | git commit-tree $T) &&
git update-ref refs/heads/main $sha1 &&
git update-ref refs/remotes/origin/main $sha1 &&
git checkout main &&
git checkout origin/main &&
git checkout main &&
refname=$(
cd subdir &&
git check-ref-format --branch @{-1}
) &&
test "$refname" = "$sha1"
Already on 'main'
Note: switching to 'origin/main'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 58052da A
Switched to branch 'main'
ok 84 - check-ref-format --branch from subdir
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
fatal: '@{-1}' is not a valid branch name
ok 85 - check-ref-format --branch @{-1} from non-repo
expecting success of 1402.86 'check-ref-format --branch main from non-repo':
echo main >expect &&
nongit git check-ref-format --branch main >actual &&
test_cmp expect actual
ok 86 - check-ref-format --branch main from non-repo
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'
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 1402.89 'ref name '/heads/foo' simplifies to 'heads/foo'':
refname=$(git check-ref-format --normalize '/heads/foo') &&
test "$refname" = 'heads/foo'
ok 89 - ref name '/heads/foo' simplifies to 'heads/foo'
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 90 - ref name '///heads/foo' simplifies to 'heads/foo'
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'
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 1402.93 'check-ref-format --normalize rejects 'heads/foo/../bar'':
test_must_fail git check-ref-format --normalize 'heads/foo/../bar'
ok 93 - check-ref-format --normalize rejects 'heads/foo/../bar'
expecting success of 1402.94 'check-ref-format --normalize rejects 'heads/./foo'':
test_must_fail git check-ref-format --normalize 'heads/./foo'
ok 94 - check-ref-format --normalize rejects 'heads/./foo'
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'
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 1402.97 'check-ref-format --normalize rejects 'heads///foo.lock'':
test_must_fail git check-ref-format --normalize 'heads///foo.lock'
ok 97 - check-ref-format --normalize rejects 'heads///foo.lock'
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 98 - check-ref-format --normalize rejects 'foo.lock/bar'
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'
# passed all 99 test(s)
1..99
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1403-show-ref.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1403-show-ref/.git/
expecting success of 1403.1 'setup':
test_commit --annotate A &&
git checkout -b side &&
test_commit --annotate B &&
git checkout main &&
test_commit C &&
git branch B A^0
[main (root-commit) 0ddfaf1] A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A.t
Switched to a new branch 'side'
[side 72702e6] B
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 B.t
Switched to branch 'main'
[main b75428b] C
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 C.t
ok 1 - setup
expecting success of 1403.2 'show-ref':
echo $(git rev-parse refs/tags/A) refs/tags/A >expect &&
git show-ref A >actual &&
test_cmp expect actual &&
git show-ref tags/A >actual &&
test_cmp expect actual &&
git show-ref refs/tags/A >actual &&
test_cmp expect actual &&
test_must_fail git show-ref D >actual &&
test_must_be_empty actual
ok 2 - show-ref
expecting success of 1403.3 'show-ref -q':
git show-ref -q A >actual &&
test_must_be_empty actual &&
git show-ref -q tags/A >actual &&
test_must_be_empty actual &&
git show-ref -q refs/tags/A >actual &&
test_must_be_empty actual &&
test_must_fail git show-ref -q D >actual &&
test_must_be_empty actual
ok 3 - show-ref -q
expecting success of 1403.4 'show-ref --verify':
echo $(git rev-parse refs/tags/A) refs/tags/A >expect &&
git show-ref --verify refs/tags/A >actual &&
test_cmp expect actual &&
test_must_fail git show-ref --verify A >actual &&
test_must_be_empty actual &&
test_must_fail git show-ref --verify tags/A >actual &&
test_must_be_empty actual &&
test_must_fail git show-ref --verify D >actual &&
test_must_be_empty actual
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 1403.5 'show-ref --verify -q':
git show-ref --verify -q refs/tags/A >actual &&
test_must_be_empty actual &&
test_must_fail git show-ref --verify -q A >actual &&
test_must_be_empty actual &&
test_must_fail git show-ref --verify -q tags/A >actual &&
test_must_be_empty actual &&
test_must_fail git show-ref --verify -q D >actual &&
test_must_be_empty actual
ok 5 - show-ref --verify -q
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 &&
git show-ref -d tags/A tags/C >actual &&
test_cmp expect actual &&
git show-ref -d refs/tags/A refs/tags/C >actual &&
test_cmp expect actual &&
git show-ref --verify -d refs/tags/A refs/tags/C >actual &&
test_cmp expect actual &&
echo $(git rev-parse refs/heads/main) refs/heads/main >expect &&
git show-ref -d main >actual &&
test_cmp expect actual &&
git show-ref -d heads/main >actual &&
test_cmp expect actual &&
git show-ref -d refs/heads/main >actual &&
test_cmp expect actual &&
git show-ref -d --verify refs/heads/main >actual &&
test_cmp expect actual &&
test_must_fail git show-ref -d --verify main >actual &&
test_must_be_empty actual &&
test_must_fail git show-ref -d --verify heads/main >actual &&
test_must_be_empty actual &&
test_must_fail git show-ref --verify -d A C >actual &&
test_must_be_empty actual &&
test_must_fail git show-ref --verify -d tags/A tags/C >actual &&
test_must_be_empty actual
fatal: 'main' - not a valid ref
fatal: 'heads/main' - 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 1403.7 'show-ref --heads, --tags, --head, pattern':
for branch in B main side
do
echo $(git rev-parse refs/heads/$branch) refs/heads/$branch || return 1
done >expect.heads &&
git show-ref --heads >actual &&
test_cmp expect.heads actual &&
for tag in A B C
do
echo $(git rev-parse refs/tags/$tag) refs/tags/$tag || return 1
done >expect.tags &&
git show-ref --tags >actual &&
test_cmp expect.tags actual &&
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 &&
{
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 &&
{
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 7 - show-ref --heads, --tags, --head, pattern
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 &&
git show-ref --verify -q HEAD >actual &&
test_must_be_empty actual
ok 8 - show-ref --verify HEAD
expecting success of 1403.9 'show-ref --verify with dangling ref':
sha1_file() {
echo "$*" | sed "s#..#.git/objects/&/#"
} &&
remove_object() {
file=$(sha1_file "$*") &&
test -e "$file" &&
rm -f "$file"
} &&
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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1403-show-ref/dangling/.git/
[main (root-commit) 7b6c85a] dangling
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 dangling.t
fatal: git show-ref: bad ref refs/tags/dangling (7b6c85aed8ac906de9f4214d9c12b4d66316df20)
ok 9 - show-ref --verify with dangling ref
# passed all 9 test(s)
1..9
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1400-update-ref.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 -
Switched to a new branch 'main'
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1400-update-ref/bare-repo/
/<<PKGBUILDDIR>>/t/trash directory.t1400-update-ref
ok 1 - setup
expecting success of 1400.2 'create refs/heads/main':
git update-ref $m $A &&
test $A = $(git show-ref -s --verify $m)
ok 2 - create refs/heads/main
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)
ok 3 - create refs/heads/main with oldvalue verification
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)"
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 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
ok 5 - delete refs/heads/main
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
ok 6 - delete refs/heads/main without oldvalue verification
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
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 1400.8 'create refs/heads/main (by HEAD)':
git update-ref HEAD $A &&
test $A = $(git show-ref -s --verify $m)
ok 8 - create refs/heads/main (by HEAD)
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)
ok 9 - create refs/heads/main (by HEAD) with oldvalue verification
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)
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 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
ok 11 - delete refs/heads/main (by HEAD)
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
102939797ab91a4f201d131418d2c9d919dcdd2c 0000000000000000000000000000000000000000 C O Mitter <committer@example.com> 1112912653 -0700 delete-refs/heads/main
ok 12 - deleting current branch adds message to HEAD's log
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
102939797ab91a4f201d131418d2c9d919dcdd2c 0000000000000000000000000000000000000000 C O Mitter <committer@example.com> 1112912653 -0700 delete-by-head
ok 13 - deleting by HEAD adds message to HEAD's log
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
ok 14 - update-ref does not create reflogs by default
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
ok 15 - update-ref creates reflogs with --create-reflog
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
ok 16 - creates no reflog in bare repository
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
ok 17 - core.logAllRefUpdates=true creates reflog in bare repository
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
ok 18 - core.logAllRefUpdates=true does not create reflog by default
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
ok 19 - core.logAllRefUpdates=always creates reflog by default
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
ok 20 - core.logAllRefUpdates=always creates reflog for ORIG_HEAD
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
ok 21 - --no-create-reflog overrides core.logAllRefUpdates=always
expecting success of 1400.22 'create refs/heads/main (by HEAD)':
git update-ref HEAD $A &&
test $A = $(git show-ref -s --verify $m)
ok 22 - create refs/heads/main (by HEAD)
expecting success of 1400.23 'pack refs':
git pack-refs --all
ok 23 - pack refs
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)
ok 24 - move refs/heads/main (by HEAD)
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
ok 25 - delete refs/heads/main (by HEAD) should remove both packed and loose refs/heads/main
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
[main (root-commit) fc83d41] foo
Author: A U Thor <author@example.com>
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 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
[main (root-commit) fc83d41] foo
Author: A U Thor <author@example.com>
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 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
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 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
ok 29 - update-ref --no-deref -d can delete self-reference
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
ok 30 - update-ref --no-deref -d can delete reference to bad ref
expecting success of 1400.31 '(not) create HEAD with old sha1':
test_must_fail git update-ref HEAD $A $B
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 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
ok 32 - (not) prior created .git/refs/heads/main
expecting success of 1400.33 'create HEAD':
git update-ref HEAD $A
ok 33 - create HEAD
expecting success of 1400.34 '(not) change HEAD with wrong SHA1':
test_must_fail git update-ref HEAD $B $Z
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 1400.35 '(not) changed .git/refs/heads/main':
test_when_finished "git update-ref -d $m" &&
! test $B = $(git show-ref -s --verify $m)
ok 35 - (not) changed .git/refs/heads/main
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)
ok 36 - create refs/heads/main (logged by touch)
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)
ok 37 - update refs/heads/main (logged by touch)
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)
ok 38 - set refs/heads/main (logged by touch)
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
Deleted branch d1/d2/r1 (was 1029397).
ok 39 - empty directory removal
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
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 1400.41 'verifying refs/heads/main's log (logged by touch)':
test_when_finished "git update-ref -d $m && rm -rf .git/logs actual expect" &&
test-tool ref-store main for-each-reflog-ent $m >actual &&
test_cmp actual expect
ok 41 - verifying refs/heads/main's log (logged by touch)
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)
ok 42 - create refs/heads/main (logged by config)
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)
ok 43 - update refs/heads/main (logged by config)
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 44 - set refs/heads/main (logged by config)
expecting success of 1400.45 'verifying refs/heads/main's log (logged by config)':
test_when_finished "git update-ref -d $m && rm -rf .git/logs actual expect" &&
test-tool ref-store main for-each-reflog-ent $m >actual &&
test_cmp actual expect
ok 45 - verifying refs/heads/main's log (logged by config)
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 46 - set up for querying the reflog
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_cmp expect e
ok 47 - Query "main@{May 25 2005}" (before history)
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_cmp expect e
ok 48 - Query main@{2005-05-25} (before history)
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_cmp expect e
ok 49 - Query "main@{May 26 2005 23:31:59}" (1 second before history)
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
ok 50 - Query "main@{May 26 2005 23:32:00}" (exactly history start)
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 51 - Query "main@{May 26 2005 23:32:30}" (first non-creation change)
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
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 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
ok 53 - Query "main@{2005-05-26 23:38:00}" (middle of history)
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 54 - Query "main@{2005-05-26 23:43:00}" (exact end of history)
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
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 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)
[main (root-commit) 0c23f5f] add
Author: A U Thor <author@example.com>
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 <author@example.com>
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 <author@example.com>
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 <author@example.com>
ok 56 - creating initial files
expecting success of 1400.57 'git commit logged updates':
test-tool ref-store main for-each-reflog-ent $m >actual &&
test_cmp expect actual
ok 57 - git commit logged updates
expecting success of 1400.58 'git cat-file blob main:F (expect OTHER)':
test OTHER = $(git cat-file blob main:F)
ok 58 - git cat-file blob main:F (expect OTHER)
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")
ok 59 - git cat-file blob main@{2005-05-26 23:30}:F (expect TEST)
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")
ok 60 - git cat-file blob main@{2005-05-26 23:42}:F (expect OTHER)
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
fatal: ambiguous argument 'PSEUDOREF': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
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 1400.62 'create pseudoref':
git update-ref PSEUDOREF $A &&
test $A = $(git rev-parse PSEUDOREF)
ok 62 - create pseudoref
expecting success of 1400.63 'overwrite pseudoref with no old value given':
git update-ref PSEUDOREF $B &&
test $B = $(git rev-parse PSEUDOREF)
ok 63 - overwrite pseudoref with no old value given
expecting success of 1400.64 'overwrite pseudoref with correct old value':
git update-ref PSEUDOREF $C $B &&
test $C = $(git rev-parse PSEUDOREF)
ok 64 - overwrite pseudoref with correct old value
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
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 1400.66 'delete pseudoref':
git update-ref -d PSEUDOREF &&
test_must_fail git rev-parse PSEUDOREF
fatal: ambiguous argument 'PSEUDOREF': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
PSEUDOREF
ok 66 - delete pseudoref
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
error: cannot lock ref 'PSEUDOREF': is at 102939797ab91a4f201d131418d2c9d919dcdd2c but expected 56d5c1374e8028a1e122ab046ab7b98165342dc4
ok 67 - do not delete pseudoref with wrong old value
expecting success of 1400.68 'delete pseudoref with correct old value':
git update-ref -d PSEUDOREF $A &&
test_must_fail git rev-parse PSEUDOREF
fatal: ambiguous argument 'PSEUDOREF': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
PSEUDOREF
ok 68 - delete pseudoref with correct old value
expecting success of 1400.69 'create pseudoref with old OID zero':
git update-ref PSEUDOREF $A $Z &&
test $A = $(git rev-parse PSEUDOREF)
ok 69 - create pseudoref with old OID zero
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
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 1400.71 'stdin test setup':
echo "$pws" >"$pws" &&
git add -- "$pws" &&
git commit -m "$pws"
[main 536da9b] path with space
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 path with space
ok 71 - stdin test setup
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
usage: git update-ref [<options>] -d <refname> [<old-val>]
ok 72 - -z fails without --stdin
expecting success of 1400.73 'stdin works with no input':
>stdin &&
git update-ref --stdin <stdin &&
git rev-parse --verify -q $m
536da9bc9e8e6d0baf01b41cf3cc49bb819559e6
ok 73 - stdin works with no input
expecting success of 1400.74 'stdin fails on empty line':
echo "" >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: empty command in input" err
fatal: empty command in input
ok 74 - stdin fails on empty line
expecting success of 1400.75 'stdin fails on only whitespace':
echo " " >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: whitespace before command: " err
fatal: whitespace before command:
ok 75 - stdin fails on only whitespace
expecting success of 1400.76 'stdin fails on leading whitespace':
echo " create $a $m" >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: whitespace before command: create $a $m" err
fatal: whitespace before command: create refs/heads/a refs/heads/main
ok 76 - stdin fails on leading whitespace
expecting success of 1400.77 'stdin fails on unknown command':
echo "unknown $a" >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: unknown command: unknown $a" err
fatal: unknown command: unknown refs/heads/a
ok 77 - stdin fails on unknown command
expecting success of 1400.78 'stdin fails on unbalanced quotes':
echo "create $a \"main" >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: badly quoted argument: \\\"main" err
fatal: badly quoted argument: "main
ok 78 - stdin fails on unbalanced quotes
expecting success of 1400.79 'stdin fails on invalid escape':
echo "create $a \"ma\zn\"" >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: badly quoted argument: \\\"ma\\\\zn\\\"" err
fatal: badly quoted argument: "ma\zn"
ok 79 - stdin fails on invalid escape
expecting success of 1400.80 'stdin fails on junk after quoted argument':
echo "create \"$a\"main" >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: unexpected character after quoted argument: \\\"$a\\\"main" err
fatal: unexpected character after quoted argument: "refs/heads/a"main
ok 80 - stdin fails on junk after quoted argument
expecting success of 1400.81 'stdin fails create with no ref':
echo "create " >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: create: missing <ref>" err
fatal: create: missing <ref>
ok 81 - stdin fails create with no ref
expecting success of 1400.82 'stdin fails create with no new value':
echo "create $a" >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: create $a: missing <newvalue>" err
fatal: create refs/heads/a: missing <newvalue>
ok 82 - stdin fails create with no new value
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 <stdin 2>err &&
grep "fatal: create $a: extra input: $m" err
fatal: create refs/heads/a: extra input: refs/heads/main
ok 83 - stdin fails create with too many arguments
expecting success of 1400.84 'stdin fails update with no ref':
echo "update " >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: update: missing <ref>" err
fatal: update: missing <ref>
ok 84 - stdin fails update with no ref
expecting success of 1400.85 'stdin fails update with no new value':
echo "update $a" >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: update $a: missing <newvalue>" err
fatal: update refs/heads/a: missing <newvalue>
ok 85 - stdin fails update with no new value
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 <stdin 2>err &&
grep "fatal: update $a: extra input: $m" err
fatal: update refs/heads/a: extra input: refs/heads/main
ok 86 - stdin fails update with too many arguments
expecting success of 1400.87 'stdin fails delete with no ref':
echo "delete " >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: delete: missing <ref>" err
fatal: delete: missing <ref>
ok 87 - stdin fails delete with no ref
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 <stdin 2>err &&
grep "fatal: delete $a: extra input: $m" err
fatal: delete refs/heads/a: extra input: refs/heads/main
ok 88 - stdin fails delete with too many arguments
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 <stdin 2>err &&
grep "fatal: verify $a: extra input: $m" err
fatal: verify refs/heads/a: extra input: refs/heads/main
ok 89 - stdin fails verify with too many arguments
expecting success of 1400.90 'stdin fails option with unknown name':
echo "option unknown" >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: option unknown: unknown" err
fatal: option unknown: unknown
ok 90 - stdin fails option with unknown name
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 <stdin 2>err &&
test_i18ngrep "fatal: multiple updates for ref '$a' not allowed" err
fatal: multiple updates for ref 'refs/heads/a' not allowed
ok 91 - stdin fails with duplicate refs
expecting success of 1400.92 'stdin create ref works':
echo "create $a $m" >stdin &&
git update-ref --stdin <stdin &&
git rev-parse $m >expect &&
git rev-parse $a >actual &&
test_cmp expect actual
ok 92 - stdin create ref works
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 <stdin &&
git rev-parse $m >expect &&
git rev-parse $outside >actual &&
test_cmp expect actual &&
test_must_fail git reflog exists $outside
ok 93 - stdin does not create reflogs by default
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 <stdin &&
git rev-parse $m >expect &&
git rev-parse $outside >actual &&
test_cmp expect actual &&
git reflog exists $outside
ok 94 - stdin creates reflogs with --create-reflog
expecting success of 1400.95 'stdin succeeds with quoted argument':
git update-ref -d $a &&
echo "create $a \"$m\"" >stdin &&
git update-ref --stdin <stdin &&
git rev-parse $m >expect &&
git rev-parse $a >actual &&
test_cmp expect actual
ok 95 - stdin succeeds with quoted argument
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 <stdin &&
git rev-parse $m >expect &&
git rev-parse $a >actual &&
test_cmp expect actual
ok 96 - stdin succeeds with escaped character
expecting success of 1400.97 'stdin update ref creates with zero old value':
echo "update $b $m $Z" >stdin &&
git update-ref --stdin <stdin &&
git rev-parse $m >expect &&
git rev-parse $b >actual &&
test_cmp expect actual &&
git update-ref -d $b
ok 97 - stdin update ref creates with zero old value
expecting success of 1400.98 'stdin update ref creates with empty old value':
echo "update $b $m $E" >stdin &&
git update-ref --stdin <stdin &&
git rev-parse $m >expect &&
git rev-parse $b >actual &&
test_cmp expect actual
ok 98 - stdin update ref creates with empty old value
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 <stdin &&
git rev-parse "$m:$pws" >expect &&
git rev-parse refs/blobs/pws >actual &&
test_cmp expect actual &&
git update-ref -d refs/blobs/pws
ok 99 - stdin create ref works with path with space to blob
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 <stdin 2>err &&
grep "fatal: cannot lock ref '$c'" err &&
test_must_fail git rev-parse --verify -q $c
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 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 <stdin 2>err &&
grep "fatal: update $c: invalid <oldvalue>: does-not-exist" err &&
test_must_fail git rev-parse --verify -q $c
fatal: update refs/heads/c: invalid <oldvalue>: does-not-exist
ok 101 - stdin update ref fails with bad old value
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 <stdin 2>err &&
grep "fatal: create $c: invalid <newvalue>: does-not-exist" err &&
test_must_fail git rev-parse --verify -q $c
fatal: create refs/heads/c: invalid <newvalue>: does-not-exist
ok 102 - stdin create ref fails with bad new value
expecting success of 1400.103 'stdin create ref fails with zero new value':
echo "create $c " >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: create $c: zero <newvalue>" err &&
test_must_fail git rev-parse --verify -q $c
fatal: create refs/heads/c: zero <newvalue>
ok 103 - stdin create ref fails with zero new value
expecting success of 1400.104 'stdin update ref works with right old value':
echo "update $b $m~1 $m" >stdin &&
git update-ref --stdin <stdin &&
git rev-parse $m~1 >expect &&
git rev-parse $b >actual &&
test_cmp expect actual
ok 104 - stdin update ref works with right old value
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 <stdin 2>err &&
grep "fatal: cannot lock ref '$a'" err &&
git rev-parse $m >expect &&
git rev-parse $a >actual &&
test_cmp expect actual
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 1400.106 'stdin delete ref fails with zero old value':
echo "delete $a " >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: delete $a: zero <oldvalue>" err &&
git rev-parse $m >expect &&
git rev-parse $a >actual &&
test_cmp expect actual
fatal: delete refs/heads/a: zero <oldvalue>
ok 106 - stdin delete ref fails with zero old value
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 <stdin &&
git rev-parse TESTSYMREF >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
ok 107 - stdin update symref works option no-deref
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 <stdin &&
test_must_fail git rev-parse --verify -q TESTSYMREF &&
git rev-parse $m~1 >expect &&
git rev-parse $b >actual &&
test_cmp expect actual
ok 108 - stdin delete symref works option no-deref
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 <stdin &&
git rev-parse TESTSYMREFONE TESTSYMREFTWO >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
ok 109 - stdin update symref works flag --no-deref
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 <stdin &&
test_must_fail git rev-parse --verify -q TESTSYMREFONE &&
test_must_fail git rev-parse --verify -q TESTSYMREFTWO &&
git rev-parse $m~1 >expect &&
git rev-parse $b >actual &&
test_cmp expect actual
ok 110 - stdin delete symref works flag --no-deref
expecting success of 1400.111 'stdin delete ref works with right old value':
echo "delete $b $m~1" >stdin &&
git update-ref --stdin <stdin &&
test_must_fail git rev-parse --verify -q $b
ok 111 - stdin delete ref works with right old value
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 <stdin &&
git rev-parse $m >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
ok 112 - stdin update/create/verify combination works
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 <stdin &&
git rev-parse $m >actual &&
test_cmp expect actual
ok 113 - stdin verify succeeds for correct value
expecting success of 1400.114 'stdin verify succeeds for missing reference':
echo "verify refs/heads/missing $Z" >stdin &&
git update-ref --stdin <stdin &&
test_must_fail git rev-parse --verify -q refs/heads/missing
ok 114 - stdin verify succeeds for missing reference
expecting success of 1400.115 'stdin verify treats no value as missing':
echo "verify refs/heads/missing" >stdin &&
git update-ref --stdin <stdin &&
test_must_fail git rev-parse --verify -q refs/heads/missing
ok 115 - stdin verify treats no value as missing
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 <stdin &&
git rev-parse $m >actual &&
test_cmp expect actual
fatal: cannot lock ref 'refs/heads/main': is at 536da9bc9e8e6d0baf01b41cf3cc49bb819559e6 but expected 29d1ccdc7ee9fe415beb2415b6206b8a20f76b1c
ok 116 - stdin verify fails for wrong value
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 <stdin &&
git rev-parse $m >actual &&
test_cmp expect actual
fatal: cannot lock ref 'refs/heads/main': reference already exists
ok 117 - stdin verify fails for mistaken null value
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 <stdin &&
git rev-parse $m >actual &&
test_cmp expect actual
fatal: cannot lock ref 'refs/heads/main': reference already exists
ok 118 - stdin verify fails for mistaken empty value
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 <stdin &&
git rev-parse $m >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
ok 119 - stdin update refs works with identity updates
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 <stdin 2>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
fatal: cannot lock ref 'refs/heads/c': reference already exists
ok 120 - stdin update refs fails with wrong old value
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 &&
test_must_fail git rev-parse --verify -q $a &&
test_must_fail git rev-parse --verify -q $b &&
test_must_fail git rev-parse --verify -q $c
ok 121 - stdin delete refs works with packed and loose refs
expecting success of 1400.122 'stdin -z works on empty input':
>stdin &&
git update-ref -z --stdin <stdin &&
git rev-parse --verify -q $m
536da9bc9e8e6d0baf01b41cf3cc49bb819559e6
ok 122 - stdin -z works on empty input
expecting success of 1400.123 'stdin -z fails on empty line':
echo "" >stdin &&
test_must_fail git update-ref -z --stdin <stdin 2>err &&
grep "fatal: whitespace before command: " err
fatal: whitespace before command:
ok 123 - stdin -z fails on empty line
expecting success of 1400.124 'stdin -z fails on empty command':
printf $F "" >stdin &&
test_must_fail git update-ref -z --stdin <stdin 2>err &&
grep "fatal: empty command in input" err
fatal: empty command in input
ok 124 - stdin -z fails on empty command
expecting success of 1400.125 'stdin -z fails on only whitespace':
printf $F " " >stdin &&
test_must_fail git update-ref -z --stdin <stdin 2>err &&
grep "fatal: whitespace before command: " err
fatal: whitespace before command:
ok 125 - stdin -z fails on only whitespace
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 <stdin 2>err &&
grep "fatal: whitespace before command: create $a" err
fatal: whitespace before command: create refs/heads/a
ok 126 - stdin -z fails on leading whitespace
expecting success of 1400.127 'stdin -z fails on unknown command':
printf $F "unknown $a" >stdin &&
test_must_fail git update-ref -z --stdin <stdin 2>err &&
grep "fatal: unknown command: unknown $a" err
fatal: unknown command: unknown refs/heads/a
ok 127 - stdin -z fails on unknown command
expecting success of 1400.128 'stdin -z fails create with no ref':
printf $F "create " >stdin &&
test_must_fail git update-ref -z --stdin <stdin 2>err &&
grep "fatal: create: missing <ref>" err
fatal: create: missing <ref>
ok 128 - stdin -z fails create with no ref
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 <stdin 2>err &&
grep "fatal: create $a: unexpected end of input when reading <newvalue>" err
fatal: create refs/heads/a: unexpected end of input when reading <newvalue>
ok 129 - stdin -z fails create with no new value
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 <stdin 2>err &&
grep "fatal: unknown command: $m" err
fatal: unknown command: refs/heads/main
ok 130 - stdin -z fails create with too many arguments
expecting success of 1400.131 'stdin -z fails update with no ref':
printf $F "update " >stdin &&
test_must_fail git update-ref -z --stdin <stdin 2>err &&
grep "fatal: update: missing <ref>" err
fatal: update: missing <ref>
ok 131 - stdin -z fails update with no ref
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 <stdin 2>err &&
grep "fatal: update $a: unexpected end of input when reading <oldvalue>" err
fatal: update refs/heads/a: unexpected end of input when reading <oldvalue>
ok 132 - stdin -z fails update with too few args
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 <stdin 2>err &&
grep "warning: update $a: missing <newvalue>, treating as zero" err &&
test_must_fail git rev-parse --verify -q $a
warning: update refs/heads/a: missing <newvalue>, treating as zero
ok 133 - stdin -z emits warning with empty new value
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 <stdin 2>err &&
grep "fatal: update $a: unexpected end of input when reading <newvalue>" err
fatal: update refs/heads/a: unexpected end of input when reading <newvalue>
ok 134 - stdin -z fails update with no new value
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 <stdin 2>err &&
grep "fatal: update $a: unexpected end of input when reading <oldvalue>" err
fatal: update refs/heads/a: unexpected end of input when reading <oldvalue>
ok 135 - stdin -z fails update with no old value
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 <stdin 2>err &&
grep "fatal: unknown command: $m" err
fatal: unknown command: refs/heads/main
ok 136 - stdin -z fails update with too many arguments
expecting success of 1400.137 'stdin -z fails delete with no ref':
printf $F "delete " >stdin &&
test_must_fail git update-ref -z --stdin <stdin 2>err &&
grep "fatal: delete: missing <ref>" err
fatal: delete: missing <ref>
ok 137 - stdin -z fails delete with no ref
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 <stdin 2>err &&
grep "fatal: delete $a: unexpected end of input when reading <oldvalue>" err
fatal: delete refs/heads/a: unexpected end of input when reading <oldvalue>
ok 138 - stdin -z fails delete with no old value
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 <stdin 2>err &&
grep "fatal: unknown command: $m" err
fatal: unknown command: refs/heads/main
ok 139 - stdin -z fails delete with too many arguments
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 <stdin 2>err &&
grep "fatal: unknown command: $m" err
fatal: unknown command: refs/heads/main
ok 140 - stdin -z fails verify with too many arguments
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 <stdin 2>err &&
grep "fatal: verify $a: unexpected end of input when reading <oldvalue>" err
fatal: verify refs/heads/a: unexpected end of input when reading <oldvalue>
ok 141 - stdin -z fails verify with no old value
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 <stdin 2>err &&
grep "fatal: option unknown: unknown" err
fatal: option unknown: unknown
ok 142 - stdin -z fails option with unknown name
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 <stdin 2>err &&
test_i18ngrep "fatal: multiple updates for ref '$a' not allowed" err
fatal: multiple updates for ref 'refs/heads/a' not allowed
ok 143 - stdin -z fails with duplicate refs
expecting success of 1400.144 'stdin -z create ref works':
printf $F "create $a" "$m" >stdin &&
git update-ref -z --stdin <stdin &&
git rev-parse $m >expect &&
git rev-parse $a >actual &&
test_cmp expect actual
ok 144 - stdin -z create ref works
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 <stdin &&
git rev-parse $m >expect &&
git rev-parse $b >actual &&
test_cmp expect actual &&
git update-ref -d $b
ok 145 - stdin -z update ref creates with zero old value
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 <stdin &&
git rev-parse $m >expect &&
git rev-parse $b >actual &&
test_cmp expect actual
ok 146 - stdin -z update ref creates with empty old value
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 <stdin &&
git rev-parse "$m:$pws" >expect &&
git rev-parse refs/blobs/pws >actual &&
test_cmp expect actual &&
git update-ref -d refs/blobs/pws
ok 147 - stdin -z create ref works with path with space to blob
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 <stdin 2>err &&
grep "fatal: cannot lock ref '$c'" err &&
test_must_fail git rev-parse --verify -q $c
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 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 <stdin 2>err &&
grep "fatal: update $c: invalid <oldvalue>: does-not-exist" err &&
test_must_fail git rev-parse --verify -q $c
fatal: update refs/heads/c: invalid <oldvalue>: does-not-exist
ok 149 - stdin -z update ref fails with bad old value
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 <stdin 2>err &&
grep "fatal: cannot lock ref '$c'" err &&
git rev-parse "$c" >actual &&
test_cmp expect actual
fatal: cannot lock ref 'refs/heads/c': reference already exists
ok 150 - stdin -z create ref fails when ref exists
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 <stdin 2>err &&
grep "fatal: create $c: invalid <newvalue>: does-not-exist" err &&
test_must_fail git rev-parse --verify -q $c
fatal: create refs/heads/c: invalid <newvalue>: does-not-exist
ok 151 - stdin -z create ref fails with bad new value
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 <stdin 2>err &&
grep "fatal: create $c: missing <newvalue>" err &&
test_must_fail git rev-parse --verify -q $c
fatal: create refs/heads/c: missing <newvalue>
ok 152 - stdin -z create ref fails with empty new value
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 <stdin &&
git rev-parse $m~1 >expect &&
git rev-parse $b >actual &&
test_cmp expect actual
ok 153 - stdin -z update ref works with right old value
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 <stdin 2>err &&
grep "fatal: cannot lock ref '$a'" err &&
git rev-parse $m >expect &&
git rev-parse $a >actual &&
test_cmp expect actual
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 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 <stdin 2>err &&
grep "fatal: delete $a: zero <oldvalue>" err &&
git rev-parse $m >expect &&
git rev-parse $a >actual &&
test_cmp expect actual
fatal: delete refs/heads/a: zero <oldvalue>
ok 155 - stdin -z delete ref fails with zero old value
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 <stdin &&
git rev-parse TESTSYMREF >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
ok 156 - stdin -z update symref works option no-deref
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 <stdin &&
test_must_fail git rev-parse --verify -q TESTSYMREF &&
git rev-parse $m~1 >expect &&
git rev-parse $b >actual &&
test_cmp expect actual
ok 157 - stdin -z delete symref works option no-deref
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 &&
test_must_fail git rev-parse --verify -q $b
ok 158 - stdin -z delete ref works with right old value
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 <stdin &&
git rev-parse $m >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
ok 159 - stdin -z update/create/verify combination works
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 <stdin &&
git rev-parse $m >actual &&
test_cmp expect actual
ok 160 - stdin -z verify succeeds for correct value
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 <stdin &&
test_must_fail git rev-parse --verify -q refs/heads/missing
ok 161 - stdin -z verify succeeds for missing reference
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 <stdin &&
test_must_fail git rev-parse --verify -q refs/heads/missing
ok 162 - stdin -z verify treats no value as missing
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 <stdin &&
git rev-parse $m >actual &&
test_cmp expect actual
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 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 <stdin &&
git rev-parse $m >actual &&
test_cmp expect actual
fatal: cannot lock ref 'refs/heads/main': reference already exists
ok 164 - stdin -z verify fails for mistaken null value
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 <stdin &&
git rev-parse $m >actual &&
test_cmp expect actual
fatal: cannot lock ref 'refs/heads/main': reference already exists
ok 165 - stdin -z verify fails for mistaken empty value
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 <stdin &&
git rev-parse $m >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
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 <stdin 2>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
fatal: cannot lock ref 'refs/heads/c': reference already exists
ok 167 - stdin -z update refs fails with wrong old value
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 <stdin &&
test_must_fail git rev-parse --verify -q $a &&
test_must_fail git rev-parse --verify -q $b &&
test_must_fail git rev-parse --verify -q $c
warning: update refs/heads/c: missing <newvalue>, treating as zero
ok 168 - stdin -z delete refs works with packed and loose refs
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 <stdin 2>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
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 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 <stdin 2>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
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
checking prerequisite: ULIMIT_FILE_DESCRIPTORS
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
)
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" || exit 1
done >large_input &&
run_with_limited_open_files git update-ref --stdin <large_input &&
git rev-parse --verify -q refs/heads/33
)
102939797ab91a4f201d131418d2c9d919dcdd2c
ok 171 - large transaction creating branches does not burst open file limit
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" || exit 1
done >large_input &&
run_with_limited_open_files git update-ref --stdin <large_input &&
test_must_fail git rev-parse --verify -q refs/heads/33
)
ok 172 - large transaction deleting branches does not burst open file limit
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
[target1 58a0522] initial commit
Author: A U Thor <author@example.com>
Preparing worktree (new branch 'branch')
HEAD is now at 58a0522 initial commit
[branch b62e0cb] test commit
Author: A U Thor <author@example.com>
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 <command> [<revision>...] -- [<file>...]'
refs/bisect/something
--- main-head 2023-09-16 19:11:30.755909332 +0000
+++ worktree-head 2023-09-16 19:11:30.711908792 +0000
@@ -1 +1 @@
-58a052250c09f010b95ad9bfe32f35d704eda1a0
+b62e0cb4990da3244885da90fe7d493334cca9f5
ok 173 - handle per-worktree refs in refs/bisect
expecting success of 1400.174 'transaction handles empty commit':
cat >stdin <<-EOF &&
start
prepare
commit
EOF
git update-ref --stdin <stdin >actual &&
printf "%s: ok\n" start prepare commit >expect &&
test_cmp expect actual
ok 174 - transaction handles empty commit
expecting success of 1400.175 'transaction handles empty commit with missing prepare':
cat >stdin <<-EOF &&
start
commit
EOF
git update-ref --stdin <stdin >actual &&
printf "%s: ok\n" start commit >expect &&
test_cmp expect actual
ok 175 - transaction handles empty commit with missing prepare
expecting success of 1400.176 'transaction handles sole commit':
cat >stdin <<-EOF &&
commit
EOF
git update-ref --stdin <stdin >actual &&
printf "%s: ok\n" commit >expect &&
test_cmp expect actual
ok 176 - transaction handles sole commit
expecting success of 1400.177 'transaction handles empty abort':
cat >stdin <<-EOF &&
start
prepare
abort
EOF
git update-ref --stdin <stdin >actual &&
printf "%s: ok\n" start prepare abort >expect &&
test_cmp expect actual
ok 177 - transaction handles empty abort
expecting success of 1400.178 'transaction exits on multiple aborts':
cat >stdin <<-EOF &&
abort
abort
EOF
test_must_fail git update-ref --stdin <stdin >actual 2>err &&
printf "%s: ok\n" abort >expect &&
test_cmp expect actual &&
grep "fatal: transaction is closed" err
fatal: transaction is closed
ok 178 - transaction exits on multiple aborts
expecting success of 1400.179 'transaction exits on start after prepare':
cat >stdin <<-EOF &&
prepare
start
EOF
test_must_fail git update-ref --stdin <stdin 2>err >actual &&
printf "%s: ok\n" prepare >expect &&
test_cmp expect actual &&
grep "fatal: prepared transactions can only be closed" err
fatal: prepared transactions can only be closed
ok 179 - transaction exits on start after prepare
expecting success of 1400.180 'transaction handles empty abort with missing prepare':
cat >stdin <<-EOF &&
start
abort
EOF
git update-ref --stdin <stdin >actual &&
printf "%s: ok\n" start abort >expect &&
test_cmp expect actual
ok 180 - transaction handles empty abort with missing prepare
expecting success of 1400.181 'transaction handles sole abort':
cat >stdin <<-EOF &&
abort
EOF
git update-ref --stdin <stdin >actual &&
printf "%s: ok\n" abort >expect &&
test_cmp expect actual
ok 181 - transaction handles sole abort
expecting success of 1400.182 'transaction can handle commit':
cat >stdin <<-EOF &&
start
create $a HEAD
commit
EOF
git update-ref --stdin <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
ok 182 - transaction can handle commit
expecting success of 1400.183 'transaction can handle abort':
cat >stdin <<-EOF &&
start
create $b HEAD
abort
EOF
git update-ref --stdin <stdin >actual &&
printf "%s: ok\n" start abort >expect &&
test_cmp expect actual &&
test_must_fail git show-ref --verify -q $b
ok 183 - transaction can handle abort
expecting success of 1400.184 'transaction aborts by default':
cat >stdin <<-EOF &&
start
create $b HEAD
EOF
git update-ref --stdin <stdin >actual &&
printf "%s: ok\n" start >expect &&
test_cmp expect actual &&
test_must_fail git show-ref --verify -q $b
ok 184 - transaction aborts by default
expecting success of 1400.185 'transaction with prepare aborts by default':
cat >stdin <<-EOF &&
start
create $b HEAD
prepare
EOF
git update-ref --stdin <stdin >actual &&
printf "%s: ok\n" start prepare >expect &&
test_cmp expect actual &&
test_must_fail git show-ref --verify -q $b
ok 185 - transaction with prepare aborts by default
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 <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
ok 186 - transaction can commit multiple times
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 <stdin >actual &&
printf "%s: ok\n" start commit start commit >expect &&
test_must_fail git show-ref --verify refs/heads/create-and-delete
fatal: 'refs/heads/create-and-delete' - not a valid ref
ok 187 - transaction can create and delete
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 <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
ok 188 - transaction can commit after abort
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 <stdin >actual &&
test_must_fail git show-ref --verify refs/heads/restart
fatal: cannot restart ongoing transaction
fatal: 'refs/heads/restart' - not a valid ref
ok 189 - transaction cannot restart ongoing transaction
checking prerequisite: PIPE
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-PIPE" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-PIPE" &&
# test whether the filesystem supports FIFOs
test_have_prereq !MINGW,!CYGWIN &&
rm -f testfifo && mkfifo testfifo
)
prerequisite PIPE ok
expecting success of 1400.190 'transaction flushes status updates':
mkfifo in out &&
(git update-ref --stdin <in >out &) &&
exec 9>in &&
exec 8<out &&
test_when_finished "exec 9>&-" &&
test_when_finished "exec 8<&-" &&
echo "start" >&9 &&
echo "start: ok" >expected &&
read line <&8 &&
echo "$line" >actual &&
test_cmp expected actual &&
echo "create refs/heads/flush $A" >&9 &&
echo prepare >&9 &&
echo "prepare: ok" >expected &&
read line <&8 &&
echo "$line" >actual &&
test_cmp expected actual &&
# This must now fail given that we have locked the ref.
test_must_fail git update-ref refs/heads/flush $B 2>stderr &&
grep "fatal: update_ref failed for ref ${SQ}refs/heads/flush${SQ}: cannot lock ref" stderr &&
echo commit >&9 &&
echo "commit: ok" >expected &&
read line <&8 &&
echo "$line" >actual &&
test_cmp expected actual
fatal: update_ref failed for ref 'refs/heads/flush': cannot lock ref 'refs/heads/flush': Unable to create '/<<PKGBUILDDIR>>/t/trash directory.t1400-update-ref/.git/refs/heads/flush.lock': File exists.
ok 190 - transaction flushes status updates
expecting success of 1400.191 'directory not created deleting packed ref':
git branch d1/d2/r1 HEAD &&
git pack-refs --all &&
test_path_is_missing .git/refs/heads/d1/d2 &&
git update-ref -d refs/heads/d1/d2/r1 &&
test_path_is_missing .git/refs/heads/d1/d2 &&
test_path_is_missing .git/refs/heads/d1
ok 191 - directory not created deleting packed ref
# passed all 191 test(s)
1..191
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1405-main-ref-store.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1405-main-ref-store/.git/
expecting success of 1405.1 'setup':
test_commit one
[main (root-commit) d79ce16] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
ok 1 - setup
expecting success of 1405.2 'pack_refs(PACK_REFS_ALL | PACK_REFS_PRUNE)':
N=`find .git/refs -type f | wc -l` &&
test "$N" != 0 &&
$RUN pack-refs PACK_REFS_PRUNE,PACK_REFS_ALL &&
N=`find .git/refs -type f` &&
test -z "$N"
ok 2 - pack_refs(PACK_REFS_ALL | PACK_REFS_PRUNE)
expecting success of 1405.3 'create_symref(FOO, refs/heads/main)':
$RUN create-symref FOO refs/heads/main nothing &&
echo refs/heads/main >expected &&
git symbolic-ref FOO >actual &&
test_cmp expected actual
ok 3 - create_symref(FOO, refs/heads/main)
expecting success of 1405.4 'delete_refs(FOO, refs/tags/new-tag)':
git tag -a -m new-tag new-tag HEAD &&
git rev-parse FOO -- &&
git rev-parse refs/tags/new-tag -- &&
m=$(git rev-parse main) &&
$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 --
d79ce1670bdcb76e6d1da2ae095e890ccb326ae9
--
407ffbd56c168afa4e9302a7cdfe469155f84482
--
fatal: ambiguous argument 'FOO': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
FOO
fatal: bad revision 'FOO'
fatal: bad revision 'refs/tags/new-tag'
ok 4 - delete_refs(FOO, refs/tags/new-tag)
ok 5 # skip delete-reflog(FOO, refs/tags/new-tag) (missing !REFFILES)
expecting success of 1405.6 'rename_refs(main, new-main)':
git rev-parse main >expected &&
$RUN rename-ref refs/heads/main refs/heads/new-main &&
git rev-parse new-main >actual &&
test_cmp expected actual &&
test_commit recreate-main
[main (root-commit) ff283f4] recreate-main
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 one.t
create mode 100644 recreate-main.t
ok 6 - rename_refs(main, new-main)
expecting success of 1405.7 'for_each_ref(refs/heads/)':
$RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual &&
cat >expected <<-\EOF &&
main 0x0
new-main 0x0
EOF
test_cmp expected actual
ok 7 - for_each_ref(refs/heads/)
expecting success of 1405.8 'for_each_ref() is sorted':
$RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual &&
sort actual > expected &&
test_cmp expected actual
ok 8 - for_each_ref() is sorted
expecting success of 1405.9 'resolve_ref(new-main)':
SHA1=`git rev-parse new-main` &&
echo "$SHA1 refs/heads/new-main 0x0" >expected &&
$RUN resolve-ref refs/heads/new-main 0 >actual &&
test_cmp expected actual
ok 9 - resolve_ref(new-main)
expecting success of 1405.10 'verify_ref(new-main)':
$RUN verify-ref refs/heads/new-main
ok 10 - verify_ref(new-main)
expecting success of 1405.11 'for_each_reflog()':
$RUN for-each-reflog | sort -k2 | cut -d" " -f 2- >actual &&
cat >expected <<-\EOF &&
HEAD 0x1
refs/heads/main 0x0
refs/heads/new-main 0x0
EOF
test_cmp expected actual
ok 11 - for_each_reflog()
expecting success of 1405.12 'for_each_reflog_ent()':
$RUN for-each-reflog-ent HEAD >actual &&
head -n1 actual | grep one &&
tail -n1 actual | grep recreate-main
0000000000000000000000000000000000000000 d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 C O Mitter <committer@example.com> 1112911993 -0700 commit (initial): one
0000000000000000000000000000000000000000 ff283f48d5b4f118f57230316ac4d562b4a6eed7 C O Mitter <committer@example.com> 1112912053 -0700 commit (initial): recreate-main
ok 12 - for_each_reflog_ent()
expecting success of 1405.13 'for_each_reflog_ent_reverse()':
$RUN for-each-reflog-ent-reverse HEAD >actual &&
head -n1 actual | grep recreate-main &&
tail -n1 actual | grep one
0000000000000000000000000000000000000000 ff283f48d5b4f118f57230316ac4d562b4a6eed7 C O Mitter <committer@example.com> 1112912053 -0700 commit (initial): recreate-main
0000000000000000000000000000000000000000 d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 C O Mitter <committer@example.com> 1112911993 -0700 commit (initial): one
ok 13 - for_each_reflog_ent_reverse()
expecting success of 1405.14 'reflog_exists(HEAD)':
$RUN reflog-exists HEAD
ok 14 - reflog_exists(HEAD)
expecting success of 1405.15 'delete_reflog(HEAD)':
$RUN delete-reflog HEAD &&
test_must_fail git reflog exists HEAD
ok 15 - delete_reflog(HEAD)
expecting success of 1405.16 'create-reflog(HEAD)':
$RUN create-reflog HEAD &&
git reflog exists HEAD
ok 16 - create-reflog(HEAD)
expecting success of 1405.17 '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
Switched to a new branch 'foo'
HEAD is now at ff283f4 recreate-main
[detached HEAD 12c332b] bar-commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 bar-commit.t
Switched to a new branch 'bar'
ok 17 - delete_ref(refs/heads/foo)
expecting success of 1405.18 '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 --
HEAD is now at 12c332b bar-commit
fatal: bad revision 'refs/heads/foo'
ok 18 - delete_ref(refs/heads/foo)
# passed all 18 test(s)
1..18
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1406-submodule-ref-store.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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-main &&
git tag -a -m new-tag new-tag HEAD
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1406-submodule-ref-store/sub/.git/
[main (root-commit) 50e526b] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first.t
Switched to a new branch 'new-main'
ok 1 - setup
expecting success of 1406.2 'pack_refs() not allowed':
test_must_fail $RUN pack-refs 3
fatal: unknown flag "3"
ok 2 - pack_refs() not allowed
expecting success of 1406.3 'create_symref() not allowed':
test_must_fail $RUN create-symref FOO refs/heads/main nothing
BUG: refs/files-backend.c:135: operation create_symref requires abilities 0x2, but only have 0x5
ok 3 - create_symref() not allowed
expecting success of 1406.4 'delete_refs() not allowed':
test_must_fail $RUN delete-refs 0 nothing FOO refs/tags/new-tag
BUG: refs/files-backend.c:135: operation delete_refs requires abilities 0x2, but only have 0x5
ok 4 - delete_refs() not allowed
expecting success of 1406.5 'rename_refs() not allowed':
test_must_fail $RUN rename-ref refs/heads/main refs/heads/new-main
BUG: refs/files-backend.c:135: operation rename_ref requires abilities 0x2, but only have 0x5
ok 5 - rename_refs() not allowed
expecting success of 1406.6 'for_each_ref(refs/heads/)':
$RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual &&
cat >expected <<-\EOF &&
main 0x0
new-main 0x0
EOF
test_cmp expected actual
ok 6 - for_each_ref(refs/heads/)
expecting success of 1406.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 7 - for_each_ref() is sorted
expecting success of 1406.8 'resolve_ref(main)':
SHA1=`git -C sub rev-parse main` &&
echo "$SHA1 refs/heads/main 0x0" >expected &&
$RUN resolve-ref refs/heads/main 0 >actual &&
test_cmp expected actual
ok 8 - resolve_ref(main)
expecting success of 1406.9 'verify_ref(new-main)':
$RUN verify-ref refs/heads/new-main
ok 9 - verify_ref(new-main)
expecting success of 1406.10 'for_each_reflog()':
$RUN for-each-reflog | sort | cut -d" " -f 2- >actual &&
cat >expected <<-\EOF &&
HEAD 0x1
refs/heads/main 0x0
refs/heads/new-main 0x0
EOF
test_cmp expected actual
ok 10 - for_each_reflog()
expecting success of 1406.11 'for_each_reflog_ent()':
$RUN for-each-reflog-ent HEAD >actual &&
head -n1 actual | grep first &&
tail -n1 actual | grep main.to.new
0000000000000000000000000000000000000000 50e526bb426771f6036ad3a8b0c81d511d91fc2a C O Mitter <committer@example.com> 1112911993 -0700 commit (initial): first
50e526bb426771f6036ad3a8b0c81d511d91fc2a 50e526bb426771f6036ad3a8b0c81d511d91fc2a C O Mitter <committer@example.com> 1112911993 -0700 checkout: moving from main to new-main
ok 11 - for_each_reflog_ent()
expecting success of 1406.12 'for_each_reflog_ent_reverse()':
$RUN for-each-reflog-ent-reverse HEAD >actual &&
head -n1 actual | grep main.to.new &&
tail -n1 actual | grep first
50e526bb426771f6036ad3a8b0c81d511d91fc2a 50e526bb426771f6036ad3a8b0c81d511d91fc2a C O Mitter <committer@example.com> 1112911993 -0700 checkout: moving from main to new-main
0000000000000000000000000000000000000000 50e526bb426771f6036ad3a8b0c81d511d91fc2a C O Mitter <committer@example.com> 1112911993 -0700 commit (initial): first
ok 12 - for_each_reflog_ent_reverse()
expecting success of 1406.13 'reflog_exists(HEAD)':
$RUN reflog-exists HEAD
ok 13 - reflog_exists(HEAD)
expecting success of 1406.14 'delete_reflog() not allowed':
test_must_fail $RUN delete-reflog HEAD
BUG: refs/files-backend.c:135: operation delete_reflog requires abilities 0x2, but only have 0x5
ok 14 - delete_reflog() not allowed
expecting success of 1406.15 'create-reflog() not allowed':
test_must_fail $RUN create-reflog HEAD
BUG: refs/files-backend.c:135: operation create_reflog requires abilities 0x2, but only have 0x5
ok 15 - create-reflog() not allowed
# passed all 15 test(s)
1..15
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1407-worktree-ref-store.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1407-worktree-ref-store/.git/
expecting success of 1407.1 'setup':
test_commit first &&
git worktree add -b wt-main wt &&
(
cd wt &&
test_commit second
)
[main (root-commit) 50e526b] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first.t
Preparing worktree (new branch 'wt-main')
HEAD is now at 50e526b first
[wt-main d662100] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 second.t
ok 1 - setup
expecting success of 1407.2 'resolve_ref(<shared-ref>)':
SHA1=`git rev-parse main` &&
echo "$SHA1 refs/heads/main 0x0" >expected &&
$RWT resolve-ref refs/heads/main 0 >actual &&
test_cmp expected actual &&
$RMAIN resolve-ref refs/heads/main 0 >actual &&
test_cmp expected actual
ok 2 - resolve_ref(<shared-ref>)
expecting success of 1407.3 'resolve_ref(<per-worktree-ref>)':
SHA1=`git -C wt rev-parse HEAD` &&
echo "$SHA1 refs/heads/wt-main 0x1" >expected &&
$RWT resolve-ref HEAD 0 >actual &&
test_cmp expected actual &&
SHA1=`git rev-parse HEAD` &&
echo "$SHA1 refs/heads/main 0x1" >expected &&
$RMAIN resolve-ref HEAD 0 >actual &&
test_cmp expected actual
ok 3 - resolve_ref(<per-worktree-ref>)
expecting success of 1407.4 'create_symref(FOO, refs/heads/main)':
$RWT create-symref FOO refs/heads/main nothing &&
echo refs/heads/main >expected &&
git -C wt symbolic-ref FOO >actual &&
test_cmp expected actual &&
$RMAIN create-symref FOO refs/heads/wt-main nothing &&
echo refs/heads/wt-main >expected &&
git symbolic-ref FOO >actual &&
test_cmp expected actual
ok 4 - create_symref(FOO, refs/heads/main)
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 &&
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 &&
$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/main 0x0
refs/heads/wt-main 0x0
EOF
test_cmp expected actual &&
$RMAIN for-each-reflog | cut -d" " -f 2- | sort >actual &&
cat >expected <<-\EOF &&
HEAD 0x1
PSEUDO-MAIN 0x0
refs/bisect/random 0x0
refs/heads/main 0x0
refs/heads/wt-main 0x0
EOF
test_cmp expected actual
ok 5 - for_each_reflog()
# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1408-packed-refs.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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/main" >expect &&
test_cmp expect actual &&
git pack-refs --all &&
git for-each-ref >actual &&
echo "$one commit refs/heads/main" >expect &&
test_cmp expect actual &&
git checkout --orphan another &&
test_tick &&
git commit --allow-empty -m two &&
two=$(git rev-parse HEAD) &&
git checkout -B main &&
git branch -D another &&
git for-each-ref >actual &&
echo "$two commit refs/heads/main" >expect &&
test_cmp expect actual &&
git reflog expire --expire=now --all &&
git prune &&
git tag -m v1.0 v1.0 main
[main (root-commit) 76a57ce] one
Author: A U Thor <author@example.com>
Switched to a new branch 'another'
[another (root-commit) 169e1dc] two
Author: A U Thor <author@example.com>
Switched to and reset branch 'main'
Deleted branch another (was 169e1dc).
ok 1 - setup
expecting success of 1408.2 'no error from stale entry in packed-refs':
git describe main >actual 2>&1 &&
echo "v1.0" >expect &&
test_cmp expect actual
ok 2 - no error from stale entry in packed-refs
# passed all 2 test(s)
1..2
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1409-avoid-packing-refs.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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)
[master (root-commit) 8d09622] Commit A
Author: A U Thor <author@example.com>
[master 241b9d6] Commit B
Author: A U Thor <author@example.com>
[master 8d1dbac] Commit C
Author: A U Thor <author@example.com>
ok 1 - setup
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
ok 2 - do not create packed-refs file gratuitously
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
ok 3 - check that marking the packed-refs file works
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
ok 4 - leave packed-refs untouched on update of packed
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
ok 5 - leave packed-refs untouched on checked update of packed
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
ok 6 - leave packed-refs untouched on verify of packed
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
ok 7 - touch packed-refs on delete of packed
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
ok 8 - leave packed-refs untouched on update of loose
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
ok 9 - leave packed-refs untouched on checked update of loose
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
ok 10 - leave packed-refs untouched on verify of loose
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
ok 11 - leave packed-refs untouched on delete of loose
# passed all 11 test(s)
1..11
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1404-update-ref-errors.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1404-update-ref-errors/.git/
expecting success of 1404.1 'setup':
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)
[master (root-commit) d31adcd] Initial
Author: A U Thor <author@example.com>
[master e6940ad] Second
Author: A U Thor <author@example.com>
[master c2327cb] Third
Author: A U Thor <author@example.com>
ok 1 - setup
expecting success of 1404.2 'existing loose ref is a simple prefix of new':
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"
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':
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"
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 1404.4 'existing loose ref is a deeper prefix of new':
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"
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 1404.5 'existing packed ref is a deeper prefix of new':
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"
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 1404.6 'new ref is a simple prefix of existing loose':
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"
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 1404.7 'new ref is a simple prefix of existing packed':
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"
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 1404.8 'new ref is a deeper prefix of existing loose':
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"
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 1404.9 'new ref is a deeper prefix of existing packed':
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"
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 1404.10 'one new ref is a simple prefix of another':
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"
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 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
ok 11 - empty directory should not fool rev-parse
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
ok 12 - empty directory should not fool for-each-ref
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
ok 13 - empty directory should not fool create
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
ok 14 - empty directory should not fool verify
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
ok 15 - empty directory should not fool 1-arg update
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
ok 16 - empty directory should not fool 2-arg update
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
ok 17 - empty directory should not fool 0-arg delete
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
ok 18 - empty directory should not fool 1-arg delete
expecting success of 1404.19 'D/F conflict prevents add long + delete short':
df_test refs/df-al-ds --add-del foo/bar foo
ok 19 - D/F conflict prevents add long + delete short
expecting success of 1404.20 'D/F conflict prevents add short + delete long':
df_test refs/df-as-dl --add-del foo foo/bar
ok 20 - D/F conflict prevents add short + delete long
expecting success of 1404.21 'D/F conflict prevents delete long + add short':
df_test refs/df-dl-as --del-add foo/bar foo
ok 21 - D/F conflict prevents delete long + add short
expecting success of 1404.22 'D/F conflict prevents delete short + add long':
df_test refs/df-ds-al --del-add foo foo/bar
ok 22 - D/F conflict prevents delete short + add long
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
ok 23 - D/F conflict prevents add long + delete short packed
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
ok 24 - D/F conflict prevents add short + delete long packed
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
ok 25 - D/F conflict prevents delete long packed + add short
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
ok 26 - D/F conflict prevents delete short packed + add long
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
ok 27 - D/F conflict prevents indirect add long + delete short
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
ok 28 - D/F conflict prevents indirect add long + indirect delete short
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
ok 29 - D/F conflict prevents indirect add short + indirect delete long
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
ok 30 - D/F conflict prevents indirect delete long + indirect add short
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
ok 31 - D/F conflict prevents indirect add long + delete short packed
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
ok 32 - D/F conflict prevents indirect add long + indirect delete short packed
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
ok 33 - D/F conflict prevents add long + indirect delete short packed
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
ok 34 - D/F conflict prevents indirect delete long packed + indirect add short
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
ok 35 - missing old value blocks update
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
ok 36 - incorrect old value blocks update
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
ok 37 - existing old value blocks create
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
ok 38 - incorrect old value blocks delete
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
ok 39 - missing old value blocks indirect update
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
ok 40 - incorrect old value blocks indirect update
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
ok 41 - existing old value blocks indirect create
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
ok 42 - incorrect old value blocks indirect delete
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
ok 43 - missing old value blocks indirect no-deref update
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
ok 44 - incorrect old value blocks indirect no-deref update
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
ok 45 - existing old value blocks indirect no-deref create
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
ok 46 - incorrect old value blocks indirect no-deref delete
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
ok 47 - non-empty directory blocks create
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
ok 48 - broken reference blocks create
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
ok 49 - non-empty directory blocks indirect create
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
ok 50 - broken reference blocks indirect create
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
ok 51 - no bogus intermediate values during delete
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
error: Unable to create '/<<PKGBUILDDIR>>/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 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
error: unable to create file /<<PKGBUILDDIR>>/t/trash directory.t1404-update-ref-errors/.git/packed-refs.new: File exists
ok 53 - delete fails cleanly if packed-refs.new write fails
# passed all 53 test(s)
1..53
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1411-reflog-show.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
[main (root-commit) e46513e] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
ok 1 - setup
expecting success of 1411.2 'log -g shows reflog headers':
git log -g -1 >tmp &&
grep ^Reflog <tmp >actual &&
test_cmp expect actual
ok 2 - log -g shows reflog headers
expecting success of 1411.3 'oneline reflog format':
git log -g -1 --oneline >actual &&
test_cmp expect actual
ok 3 - oneline reflog format
expecting success of 1411.4 'reflog default format':
git reflog -1 >actual &&
test_cmp expect actual
ok 4 - reflog default format
expecting success of 1411.5 'override reflog default format':
git reflog --format=short -1 >actual &&
test_cmp expect actual
ok 5 - override reflog default format
expecting success of 1411.6 'using @{now} syntax shows reflog date (multiline)':
git log -g -1 HEAD@{now} >tmp &&
grep ^Reflog <tmp >actual &&
test_cmp expect actual
ok 6 - using @{now} syntax shows reflog date (multiline)
expecting success of 1411.7 'using @{now} syntax shows reflog date (oneline)':
git log -g -1 --oneline HEAD@{now} >actual &&
test_cmp expect actual
ok 7 - using @{now} syntax shows reflog date (oneline)
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
ok 8 - using @{now} syntax shows reflog date (format=%gd)
expecting success of 1411.9 'using --date= shows reflog date (multiline)':
git log -g -1 --date=default >tmp &&
grep ^Reflog <tmp >actual &&
test_cmp expect actual
ok 9 - using --date= shows reflog date (multiline)
expecting success of 1411.10 'using --date= shows reflog date (oneline)':
git log -g -1 --oneline --date=default >actual &&
test_cmp expect actual
ok 10 - using --date= shows reflog date (oneline)
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
ok 11 - using --date= shows reflog date (format=%gd)
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 <tmp >actual &&
test_cmp expect actual
ok 12 - log.date does not invoke "--date" magic (multiline)
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
ok 13 - log.date does not invoke "--date" magic (oneline)
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
ok 14 - log.date does not invoke "--date" magic (format=%gd)
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
ok 15 - --date magic does not override explicit @{0} syntax
expecting success of 1411.16 'empty reflog file':
git branch empty &&
git reflog expire --expire=all refs/heads/empty &&
git log -g empty >actual &&
test_must_be_empty actual
ok 16 - empty reflog file
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
[main fc3e0aa] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 two.t
ok 17 - git log -g -p shows diffs vs. parents
# passed all 17 test(s)
1..17
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1412-reflog-loop.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1412-reflog-loop/.git/
expecting success of 1412.1 'setup commits':
test_commit one file content &&
test_commit --append two file content
[master (root-commit) e46513e] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
[master 98995b2] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - setup commits
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
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 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
ok 3 - reflog shows all entries
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1413-reflog-detach.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 &&
"$TAR" cf .git-saved.tar .git
[main (root-commit) 66fe8b3] initial
Author: A U Thor <author@example.com>
[main 5ce2b00] second
Author: A U Thor <author@example.com>
ok 1 - setup
expecting success of 1413.2 'baseline':
reset_state &&
git rev-parse main main^ >expect &&
git log -g --format=%H >actual &&
test_cmp expect actual
ok 2 - baseline
expecting success of 1413.3 'switch to branch':
reset_state &&
git rev-parse side main main^ >expect &&
git checkout side &&
git log -g --format=%H >actual &&
test_cmp expect actual
Switched to branch 'side'
ok 3 - switch to branch
expecting success of 1413.4 'detach to other':
reset_state &&
git rev-parse main side main main^ >expect &&
git checkout side &&
git checkout main^0 &&
git log -g --format=%H >actual &&
test_cmp expect actual
Switched to branch 'side'
Note: switching to 'main^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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 5ce2b00 second
ok 4 - detach to other
expecting success of 1413.5 'detach to self':
reset_state &&
git rev-parse main main main^ >expect &&
git checkout main^0 &&
git log -g --format=%H >actual &&
test_cmp expect actual
Note: switching to 'main^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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 5ce2b00 second
ok 5 - detach to self
expecting success of 1413.6 'attach to self':
reset_state &&
git rev-parse main main main main^ >expect &&
git checkout main^0 &&
git checkout main &&
git log -g --format=%H >actual &&
test_cmp expect actual
Note: switching to 'main^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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 5ce2b00 second
Switched to branch 'main'
ok 6 - attach to self
expecting success of 1413.7 'attach to other':
reset_state &&
git rev-parse side main main main^ >expect &&
git checkout main^0 &&
git checkout side &&
git log -g --format=%H >actual &&
test_cmp expect actual
Note: switching to 'main^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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 5ce2b00 second
Previous HEAD position was 5ce2b00 second
Switched to branch 'side'
ok 7 - attach to other
# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1410-reflog.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 . &&
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 &&
test_chmod +x C &&
git add C &&
test_tick && git commit -m dragon &&
L=$(git rev-parse --verify HEAD) &&
check_fsck &&
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 &&
rm -f A/G &&
test_tick && git commit -a -m monkey &&
K=$(git rev-parse --verify HEAD) &&
check_fsck &&
check_have A B C D E F G H I J K L &&
git prune &&
check_have A B C D E F G H I J K L &&
check_fsck &&
git reflog refs/heads/main >output &&
test_line_count = 4 output
[main (root-commit) 07fcc4f] rabbit
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
create mode 100644 A/B/E
create mode 100644 A/D
create mode 100644 C
[main 7d1a0b8] dragon
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 C
[main 15ab5f0] sheep
Author: A U Thor <author@example.com>
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
[main 3ac530f] monkey
Author: A U Thor <author@example.com>
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 1410.2 'correct usage on sub-command -h':
test_expect_code 129 git reflog expire -h >err &&
grep "git reflog expire" err
usage: git reflog expire [--expire=<time>] [--expire-unreachable=<time>]
ok 2 - correct usage on sub-command -h
expecting success of 1410.3 'correct usage on "git reflog show -h"':
test_expect_code 129 git reflog show -h >err &&
grep -F "git reflog [show]" err
usage: git reflog [show] [<log-options>] [<ref>]
ok 3 - correct usage on "git reflog show -h"
expecting success of 1410.4 'pass through -- to sub-command':
test_when_finished "rm -rf repo" &&
git init repo &&
test_commit -C repo message --a-file contents dash-tag &&
git -C repo reflog show -- --does-not-exist >out &&
test_must_be_empty out &&
git -C repo reflog show >expect &&
git -C repo reflog show -- --a-file >actual &&
test_cmp expect actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1410-reflog/repo/.git/
[main (root-commit) 85b7e86] message
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 --a-file
ok 4 - pass through -- to sub-command
expecting success of 1410.5 'rewind':
test_tick && git reset --hard HEAD~2 &&
test -f C &&
test -f A/B/E &&
! test -f F &&
! test -f A/G &&
check_have A B C D E F G H I J K L &&
git prune &&
check_have A B C D E F G H I J K L &&
git reflog refs/heads/main >output &&
test_line_count = 5 output
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 5 - rewind
expecting success of 1410.6 'corrupt and check':
corrupt $F &&
check_fsck "missing blob $F"
missing blob 9ae84adb2704cbd49549e52169b4043871e13432
ok 6 - corrupt and check
expecting success of 1410.7 'reflog expire --dry-run should not touch reflog':
git reflog expire --dry-run \
--expire=$(($test_tick - 10000)) \
--expire-unreachable=$(($test_tick - 10000)) \
--stale-fix \
--all &&
git reflog refs/heads/main >output &&
test_line_count = 5 output &&
check_fsck "missing blob $F"
missing blob 9ae84adb2704cbd49549e52169b4043871e13432
ok 7 - reflog expire --dry-run should not touch reflog
expecting success of 1410.8 'reflog expire':
git reflog expire --verbose \
--expire=$(($test_tick - 10000)) \
--expire-unreachable=$(($test_tick - 10000)) \
--stale-fix \
--all &&
git reflog refs/heads/main >output &&
test_line_count = 2 output &&
check_fsck "dangling commit $K"
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 8 - reflog expire
expecting success of 1410.9 '--stale-fix handles missing objects generously':
git -c core.logAllRefUpdates=false fast-import --date-format=now <<-EOS &&
commit refs/heads/stale-fix
mark :1
committer Author <a@uth.or> now
data <<EOF
start stale fix
EOF
M 100644 inline file
data <<EOF
contents
EOF
commit refs/heads/stale-fix
committer Author <a@uth.or> now
data <<EOF
stale fix branch tip
EOF
from :1
EOS
parent_oid=$(git rev-parse stale-fix^) &&
test_when_finished "recover $parent_oid" &&
corrupt $parent_oid &&
git reflog expire --stale-fix
fast-import statistics:
---------------------------------------------------------------------
Alloc'd objects: 5000
Total objects: 4 ( 0 duplicates )
blobs : 1 ( 0 duplicates 0 deltas of 0 attempts)
trees : 1 ( 0 duplicates 0 deltas of 0 attempts)
commits: 2 ( 0 duplicates 0 deltas of 0 attempts)
tags : 0 ( 0 duplicates 0 deltas of 0 attempts)
Total branches: 1 ( 1 loads )
marks: 1024 ( 1 unique )
atoms: 1
Memory total: 2446 KiB
pools: 2133 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 9 - --stale-fix handles missing objects generously
expecting success of 1410.10 'prune and fsck':
git prune &&
check_fsck &&
check_have A B C D E H L &&
check_dont_have F G I J K
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 10 - prune and fsck
expecting success of 1410.11 'recover and check':
recover $F &&
check_fsck "dangling blob $F"
dangling blob 9ae84adb2704cbd49549e52169b4043871e13432
ok 11 - recover and check
expecting success of 1410.12 'delete':
echo 1 > C &&
test_tick &&
git commit -m rat C &&
echo 2 > C &&
test_tick &&
git commit -m ox C &&
echo 3 > C &&
test_tick &&
git commit -m tiger C &&
HEAD_entry_count=$(git reflog | wc -l) &&
main_entry_count=$(git reflog show main | wc -l) &&
test $HEAD_entry_count = 5 &&
test $main_entry_count = 5 &&
git reflog delete main@{1} &&
git reflog show main > output &&
test_line_count = $(($main_entry_count - 1)) output &&
test $HEAD_entry_count = $(git reflog | wc -l) &&
! grep ox < output &&
main_entry_count=$(wc -l < output) &&
git reflog delete HEAD@{1} &&
test $(($HEAD_entry_count -1)) = $(git reflog | wc -l) &&
test $main_entry_count = $(git reflog show main | wc -l) &&
HEAD_entry_count=$(git reflog | wc -l) &&
git reflog delete main@{07.04.2005.15:15:00.-0700} &&
git reflog show main > output &&
test_line_count = $(($main_entry_count - 1)) output &&
! grep dragon < output
[main f392752] rat
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[main 7e525ff] ox
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[main 3740c00] tiger
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 12 - delete
expecting success of 1410.13 'rewind2':
test_tick && git reset --hard HEAD~2 &&
git reflog refs/heads/main >output &&
test_line_count = 4 output
HEAD is now at f392752 rat
ok 13 - rewind2
expecting success of 1410.14 '--expire=never':
git reflog expire --verbose \
--expire=never \
--expire-unreachable=never \
--all &&
git reflog refs/heads/main >output &&
test_line_count = 4 output
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 14 - --expire=never
expecting success of 1410.15 'gc.reflogexpire=never':
test_config gc.reflogexpire never &&
test_config gc.reflogexpireunreachable never &&
git reflog expire --verbose --all >output &&
test_line_count = 9 output &&
git reflog refs/heads/main >output &&
test_line_count = 4 output
ok 15 - gc.reflogexpire=never
expecting success of 1410.16 'gc.reflogexpire=false':
test_config gc.reflogexpire false &&
test_config gc.reflogexpireunreachable false &&
git reflog expire --verbose --all &&
git reflog refs/heads/main >output &&
test_line_count = 4 output
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 16 - gc.reflogexpire=false
expecting success of 1410.17 'git reflog expire unknown reference':
test_config gc.reflogexpire never &&
test_config gc.reflogexpireunreachable never &&
test_must_fail git reflog expire main@{123} 2>stderr &&
test_i18ngrep "points nowhere" stderr &&
test_must_fail git reflog expire does-not-exist 2>stderr &&
test_i18ngrep "points nowhere" stderr
error: main@{123} points nowhere!
error: does-not-exist points nowhere!
ok 17 - git reflog expire unknown reference
expecting success of 1410.18 'checkout should not delete log for packed ref':
test $(git reflog main | wc -l) = 4 &&
git branch foo &&
git pack-refs --all &&
git checkout foo &&
test $(git reflog main | wc -l) = 4
Switched to branch 'foo'
ok 18 - checkout should not delete log for packed ref
expecting success of 1410.19 'stale dirs do not cause d/f conflicts (reflogs on)':
test_when_finished "git branch -d one || git branch -d one/two" &&
git branch one/two main &&
echo "one/two@{0} branch: Created from main" >expect &&
git log -g --format="%gd %gs" one/two >actual &&
test_cmp expect actual &&
git branch -d one/two &&
# 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 main &&
echo "one@{0} branch: Created from main" >expect &&
git log -g --format="%gd %gs" one >actual &&
test_cmp expect actual
Deleted branch one/two (was f392752).
Deleted branch one (was f392752).
ok 19 - stale dirs do not cause d/f conflicts (reflogs on)
expecting success of 1410.20 'stale dirs do not cause d/f conflicts (reflogs off)':
test_when_finished "git branch -d one || git branch -d one/two" &&
git branch one/two main &&
echo "one/two@{0} branch: Created from main" >expect &&
git log -g --format="%gd %gs" one/two >actual &&
test_cmp expect actual &&
git branch -d one/two &&
# 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 main &&
git log -g --format="%gd %gs" one >actual &&
test_must_be_empty actual
Deleted branch one/two (was f392752).
Deleted branch one (was f392752).
ok 20 - stale dirs do not cause d/f conflicts (reflogs off)
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 1410.21 'parsing reverse reflogs at BUFSIZ boundaries':
git checkout -b reflogskip &&
zf=$(test_oid zero_2) &&
ident="abc <xyz> 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 || return 1
done
else
printf X
fi &&
printf "\n" || return 1
done >.git/logs/refs/heads/reflogskip &&
git rev-parse reflogskip@{73} >actual &&
echo ${zf}03 >expect &&
test_cmp expect actual
Switched to a new branch 'reflogskip'
ok 21 - parsing reverse reflogs at BUFSIZ boundaries
expecting success of 1410.22 '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
f392752 refs/tests/tree-in-reflog@{0}: Restoring to commit
f392752 refs/tests/tree-in-reflog@{2}: Creating ref
ok 22 - no segfaults for reflog containing non-commit sha1s
checking known breakage of 1410.23 'reflog with non-commit entries displays all entries':
git reflog refs/tests/tree-in-reflog >actual &&
test_line_count = 3 actual
test_line_count: line count for actual != 3
f392752 refs/tests/tree-in-reflog@{0}: Restoring to commit
f392752 refs/tests/tree-in-reflog@{2}: Creating ref
not ok 23 - reflog with non-commit entries displays all entries # TODO known breakage
expecting success of 1410.24 '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
ok 24 - reflog expire operates on symref not referrent
expecting success of 1410.25 '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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1410-reflog/orphanage/.git/
[main (root-commit) 3805046] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 initial.t
Switched to a new branch 'orphan1'
[orphan1 (root-commit) 5906753] orphan1-1
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 initial.t
create mode 100644 orphan1-1.t
[orphan1 4e641d7] orphan1-2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 orphan1-2.t
Switched to a new branch 'orphan2'
[orphan2 (root-commit) 593a89b] orphan2-1
Author: A U Thor <author@example.com>
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 25 - continue walking past root commits
expecting success of 1410.26 '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-tool ref-store worktree:link-wt for-each-reflog-ent HEAD >actual &&
test_must_be_empty actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1410-reflog/main-wt/.git/
[main (root-commit) 7745948] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
Preparing worktree (new branch 'link-wt')
HEAD is now at 7745948 foo
[link-wt 25ae450] foobar
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foobar.t
prune commit (initial): foo
prune commit (initial): foo
prune branch: Created from HEAD
prune commit: foobar
prune
prune reset: moving to HEAD
prune commit: foobar
ok 26 - expire with multiple worktrees
expecting success of 1410.27 'empty reflog':
test_when_finished "rm -rf empty" &&
git init empty &&
test_commit -C empty A &&
>empty/.git/logs/refs/heads/foo &&
git -C empty reflog expire --all 2>err &&
test_must_be_empty err
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1410-reflog/empty/.git/
[main (root-commit) d4404d5] A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A.t
ok 27 - empty reflog
# still have 1 known breakage(s)
# passed all remaining 26 test(s)
1..27
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1414-reflog-walk.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 main &&
echo evil-merge-content >>one.t &&
test_tick &&
git commit --no-edit -a
[main (root-commit) d79ce16] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
[main 139b20d] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 two.t
Switched to a new branch 'side'
[side 897c206] three
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 three.t
Automatic merge went well; stopped before committing as requested
[side 6635cc5] Merge branch 'main' into side
Author: A U Thor <author@example.com>
ok 1 - set up some reflog entries
expecting success of 1414.2 'set up expected reflog':
cat >expect.all <<-EOF
HEAD@{0} commit (merge): Merge branch ${SQ}main${SQ} into side
HEAD@{1} commit: three
HEAD@{2} checkout: moving from main to side
HEAD@{3} commit: two
HEAD@{4} commit (initial): one
EOF
ok 2 - set up expected reflog
expecting success of 1414.3 'reflog walk shows expected logs':
do_walk >actual &&
test_cmp expect.all actual
ok 3 - reflog walk shows expected logs
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
ok 4 - reflog can limit with --no-merges
expecting success of 1414.5 'reflog can limit with pathspecs':
grep two expect.all >expect &&
do_walk -- two.t >actual &&
test_cmp expect actual
ok 5 - reflog can limit with pathspecs
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
ok 6 - pathspec limiting handles merges
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
ok 7 - --parents shows true parents
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 main before
# side when breaking ties.
{
do_walk --date=unix HEAD &&
do_walk --date=unix side &&
do_walk --date=unix main
} >expect.raw &&
sort -t "{" -k 2nr -k 1 <expect.raw >expect &&
do_walk --date=unix HEAD main side >actual &&
test_cmp expect actual
ok 8 - walking multiple reflogs shows all
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
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 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".
git update-ref -m before refs/heads/minmax one &&
test_tick &&
min=$test_tick &&
git update-ref -m min refs/heads/minmax two &&
test_tick &&
max=$test_tick &&
git update-ref -m max refs/heads/minmax one &&
test_tick &&
git update-ref -m after refs/heads/minmax two &&
cat >expect <<-\EOF &&
max
min
EOF
git log -g --since=$min --until=$max --format=%gs minmax >actual &&
test_cmp expect actual
ok 10 - min/max age uses entry date to limit
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 &&
echo $one >expect &&
git log -g --format=%H -1 >actual &&
test_cmp expect actual
ok 11 - walk prefers reflog to ref tip
expecting success of 1414.12 'rev-list -g complains when there are no reflogs':
test_must_fail git rev-list -g
usage: git rev-list [<options>] <commit>... [--] [<path>...]
limiting output:
--max-count=<n>
--max-age=<epoch>
--min-age=<epoch>
--sparse
--no-merges
--min-parents=<n>
--no-min-parents
--max-parents=<n>
--no-max-parents
--remove-empty
--all
--branches
--tags
--remotes
--stdin
--exclude-hidden=[receive|uploadpack]
--quiet
ordering output:
--topo-order
--date-order
--reverse
formatting output:
--parents
--children
--objects | --objects-edge
--disk-usage[=human]
--unpacked
--header | --pretty
--[no-]object-names
--abbrev=<n> | --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
# passed all 12 test(s)
1..12
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1416-ref-transaction-hooks.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1416-ref-transaction-hooks/.git/
expecting success of 1416.1 'setup':
test_commit PRE &&
PRE_OID=$(git rev-parse PRE) &&
test_commit POST &&
POST_OID=$(git rev-parse POST)
[main (root-commit) 63ac8e7] PRE
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 PRE.t
[main 99d5316] POST
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 POST.t
ok 1 - setup
expecting success of 1416.2 'hook allows updating ref if successful':
git reset --hard PRE &&
test_hook reference-transaction <<-\EOF &&
echo "$*" >>actual
EOF
cat >expect <<-EOF &&
prepared
committed
EOF
git update-ref HEAD POST &&
test_cmp expect actual
HEAD is now at 63ac8e7 PRE
ok 2 - hook allows updating ref if successful
expecting success of 1416.3 'hook aborts updating ref in prepared state':
git reset --hard PRE &&
test_hook 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
HEAD is now at 63ac8e7 PRE
fatal: ref updates aborted by hook
ok 3 - hook aborts updating ref in prepared state
expecting success of 1416.4 'hook gets all queued updates in prepared state':
test_when_finished "rm actual" &&
git reset --hard PRE &&
test_hook 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/main
EOF
git update-ref HEAD POST <<-EOF &&
update HEAD $ZERO_OID $POST_OID
update refs/heads/main $ZERO_OID $POST_OID
EOF
test_cmp expect actual
HEAD is now at 63ac8e7 PRE
ok 4 - hook gets all queued updates in prepared state
expecting success of 1416.5 'hook gets all queued updates in committed state':
test_when_finished "rm actual" &&
git reset --hard PRE &&
test_hook 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/main
EOF
git update-ref HEAD POST &&
test_cmp expect actual
HEAD is now at 63ac8e7 PRE
ok 5 - hook gets all queued updates in committed state
expecting success of 1416.6 'hook gets all queued updates in aborted state':
test_when_finished "rm actual" &&
git reset --hard PRE &&
test_hook 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/main
EOF
git update-ref --stdin <<-EOF &&
start
update HEAD POST $ZERO_OID
update refs/heads/main POST $ZERO_OID
abort
EOF
test_cmp expect actual
HEAD is now at 63ac8e7 PRE
start: ok
abort: ok
ok 6 - hook gets all queued updates in aborted state
expecting success of 1416.7 'interleaving hook calls succeed':
test_when_finished "rm -r target-repo.git" &&
git init --bare target-repo.git &&
test_hook -C target-repo.git reference-transaction <<-\EOF &&
echo $0 "$@" >>actual
EOF
test_hook -C target-repo.git update <<-\EOF &&
echo $0 "$@" >>actual
EOF
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
git push ./target-repo.git PRE POST &&
test_cmp expect target-repo.git/actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1415-worktree-refs.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
[master (root-commit) 24b24cf] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 initial.t
[master 42fba42] wt1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 wt1.t
[master 83df652] wt2
Author: A U Thor <author@example.com>
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'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 24b24cf initial
ok 1 - setup
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
ok 2 - refs/worktree must not be packed
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 )
ok 3 - refs/worktree are per-worktree
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 )
ok 4 - resolve main-worktree/HEAD
expecting success of 1415.5 'ambiguous main-worktree/HEAD':
test_when_finished git update-ref -d refs/heads/main-worktree/HEAD &&
git update-ref refs/heads/main-worktree/HEAD $(git rev-parse HEAD) &&
git rev-parse main-worktree/HEAD 2>warn &&
grep "main-worktree/HEAD.*ambiguous" warn
24b24cf8a829f5b8c30dfc018b0a459a2ccaf380
warning: refname 'main-worktree/HEAD' is ambiguous.
ok 5 - ambiguous main-worktree/HEAD
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 )
ok 6 - resolve worktrees/xx/HEAD
expecting success of 1415.7 'ambiguous worktrees/xx/HEAD':
git update-ref refs/heads/worktrees/wt1/HEAD $(git rev-parse HEAD) &&
test_when_finished git update-ref -d refs/heads/worktrees/wt1/HEAD &&
git rev-parse worktrees/wt1/HEAD 2>warn &&
grep "worktrees/wt1/HEAD.*ambiguous" warn
42fba42569eaa325aaade18832dfa5432d54ffd1
warning: refname 'worktrees/wt1/HEAD' is ambiguous.
ok 7 - ambiguous worktrees/xx/HEAD
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
ok 8 - reflog of main-worktree/HEAD
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
ok 9 - reflog of worktrees/xx/HEAD
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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1415-worktree-refs/fer1/repo/.git/
[master (root-commit) 1935181] initial
Author: A U Thor <author@example.com>
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 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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1415-worktree-refs/fer2/repo/.git/
[master (root-commit) 23fa7ba] initial
Author: A U Thor <author@example.com>
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
# passed all 11 test(s)
1..11
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1418-reflog-exists.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1418-reflog-exists/.git/
expecting success of 1418.1 'setup':
test_commit A
[main (root-commit) 0ddfaf1] A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A.t
ok 1 - setup
expecting success of 1418.2 'usage':
test_expect_code 129 git reflog exists &&
test_expect_code 129 git reflog exists -h
usage: git reflog exists <ref>
usage: git reflog exists <ref>
ok 2 - usage
expecting success of 1418.3 'usage: unknown option':
test_expect_code 129 git reflog exists --unknown-option
error: unknown option `unknown-option'
usage: git reflog exists <ref>
ok 3 - usage: unknown option
expecting success of 1418.4 'reflog exists works':
git reflog exists refs/heads/main &&
test_must_fail git reflog exists refs/heads/nonexistent
ok 4 - reflog exists works
expecting success of 1418.5 'reflog exists works with a "--" delimiter':
git reflog exists -- refs/heads/main &&
test_must_fail git reflog exists -- refs/heads/nonexistent
ok 5 - reflog exists works with a "--" delimiter
expecting success of 1418.6 'reflog exists works with a "--end-of-options" delimiter':
git reflog exists --end-of-options refs/heads/main &&
test_must_fail git reflog exists --end-of-options refs/heads/nonexistent
ok 6 - reflog exists works with a "--end-of-options" delimiter
# passed all 6 test(s)
1..6
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1420-lost-found.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
[master (root-commit) 9bb1ae9] initial
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 file1
[master 8ad33be] second
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 file2
ok 1 - setup
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)
HEAD is now at 9bb1ae9 initial
dangling blob 00750edc07d6415dcc07ae0351e9397b0222b7ba
dangling commit 8ad33beea8de8e15812274614acd0a26d73b60f8
ok 2 - lost and found something
# passed all 2 test(s)
1..2
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1417-reflog-updateref.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1417-reflog-updateref/.git/
expecting success of 1417.1 'setup':
git init -b main repo &&
(
cd repo &&
test_commit A &&
test_commit B &&
test_commit C &&
cp .git/logs/HEAD HEAD.old &&
git reset --hard HEAD~ &&
cp HEAD.old .git/logs/HEAD
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1417-reflog-updateref/repo/.git/
[main (root-commit) 0ddfaf1] A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A.t
[main d9df450] B
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 B.t
[main 35a8500] C
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 C.t
HEAD is now at d9df450 B
ok 1 - setup
expecting success of 1417.2 'get 'B' with 'git reflog delete --updateref HEAD@{0}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
ok 2 - get 'B' with 'git reflog delete --updateref HEAD@{0}'
expecting success of 1417.3 'get 'B' with 'git reflog delete --updateref HEAD@{1}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
ok 3 - get 'B' with 'git reflog delete --updateref HEAD@{1}'
expecting success of 1417.4 'get 'C' with 'git reflog delete --updateref main@{0}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
ok 4 - get 'C' with 'git reflog delete --updateref main@{0}'
expecting success of 1417.5 'get 'B' with 'git reflog delete --updateref main@{1}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
ok 5 - get 'B' with 'git reflog delete --updateref main@{1}'
expecting success of 1417.6 'get 'B' with 'git reflog delete --updateref --rewrite HEAD@{0}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
ok 6 - get 'B' with 'git reflog delete --updateref --rewrite HEAD@{0}'
expecting success of 1417.7 'get 'B' with 'git reflog delete --updateref --rewrite HEAD@{1}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
ok 7 - get 'B' with 'git reflog delete --updateref --rewrite HEAD@{1}'
expecting success of 1417.8 'get 'C' with 'git reflog delete --updateref --rewrite main@{0}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
ok 8 - get 'C' with 'git reflog delete --updateref --rewrite main@{0}'
expecting success of 1417.9 'get 'B' with 'git reflog delete --updateref --rewrite main@{1}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
ok 9 - get 'B' with 'git reflog delete --updateref --rewrite main@{1}'
expecting success of 1417.10 'get 'B' with 'test_must_fail git reflog expire HEAD@{0}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
error: HEAD@{0} points nowhere!
ok 10 - get 'B' with 'test_must_fail git reflog expire HEAD@{0}'
expecting success of 1417.11 'get 'B' with 'test_must_fail git reflog expire HEAD@{1}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
error: HEAD@{1} points nowhere!
ok 11 - get 'B' with 'test_must_fail git reflog expire HEAD@{1}'
expecting success of 1417.12 'get 'B' with 'test_must_fail git reflog expire main@{0}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
error: main@{0} points nowhere!
ok 12 - get 'B' with 'test_must_fail git reflog expire main@{0}'
expecting success of 1417.13 'get 'B' with 'test_must_fail git reflog expire main@{1}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
error: main@{1} points nowhere!
ok 13 - get 'B' with 'test_must_fail git reflog expire main@{1}'
expecting success of 1417.14 'get 'B' with 'test_must_fail git reflog expire --updateref HEAD@{0}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
error: HEAD@{0} points nowhere!
ok 14 - get 'B' with 'test_must_fail git reflog expire --updateref HEAD@{0}'
expecting success of 1417.15 'get 'B' with 'test_must_fail git reflog expire --updateref HEAD@{1}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
error: HEAD@{1} points nowhere!
ok 15 - get 'B' with 'test_must_fail git reflog expire --updateref HEAD@{1}'
expecting success of 1417.16 'get 'B' with 'test_must_fail git reflog expire --updateref main@{0}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
error: main@{0} points nowhere!
ok 16 - get 'B' with 'test_must_fail git reflog expire --updateref main@{0}'
expecting success of 1417.17 'get 'B' with 'test_must_fail git reflog expire --updateref main@{1}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
error: main@{1} points nowhere!
ok 17 - get 'B' with 'test_must_fail git reflog expire --updateref main@{1}'
expecting success of 1417.18 'get 'B' with 'test_must_fail git reflog expire --updateref --rewrite HEAD@{0}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
error: HEAD@{0} points nowhere!
ok 18 - get 'B' with 'test_must_fail git reflog expire --updateref --rewrite HEAD@{0}'
expecting success of 1417.19 'get 'B' with 'test_must_fail git reflog expire --updateref --rewrite HEAD@{1}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
error: HEAD@{1} points nowhere!
ok 19 - get 'B' with 'test_must_fail git reflog expire --updateref --rewrite HEAD@{1}'
expecting success of 1417.20 'get 'B' with 'test_must_fail git reflog expire --updateref --rewrite main@{0}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
error: main@{0} points nowhere!
ok 20 - get 'B' with 'test_must_fail git reflog expire --updateref --rewrite main@{0}'
expecting success of 1417.21 'get 'B' with 'test_must_fail git reflog expire --updateref --rewrite main@{1}'':
test_when_finished "rm -rf copy" &&
cp -R repo copy &&
(
cd copy &&
$args &&
git rev-parse $exp >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual
)
error: main@{1} points nowhere!
ok 21 - get 'B' with 'test_must_fail git reflog expire --updateref --rewrite main@{1}'
# passed all 21 test(s)
1..21
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1430-bad-ref-name.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1430-bad-ref-name/.git/
expecting success of 1430.1 'setup':
test_commit one &&
test_commit two &&
main_sha1=$(git rev-parse refs/heads/main)
[main (root-commit) d79ce16] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
[main 139b20d] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 two.t
ok 1 - setup
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 <<COMMIT
corrupt
COMMIT
from refs/heads/main
INPUT_END
test_must_fail git fast-import <input
fatal: Branch name doesn't conform to GIT standards: .badbranchname
fast-import: dumping crash report to .git/fast_import_crash_4415
ok 2 - fast-import: fail on invalid branch name ".badbranchname"
expecting success of 1430.3 'fast-import: fail on invalid branch name "bad[branch]name"':
test_when_finished "rm -f .git/objects/pack_* .git/objects/index_*" &&
cat >input <<-INPUT_END &&
commit bad[branch]name
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
data <<COMMIT
corrupt
COMMIT
from refs/heads/main
INPUT_END
test_must_fail git fast-import <input
fatal: Branch name doesn't conform to GIT standards: bad[branch]name
fast-import: dumping crash report to .git/fast_import_crash_4423
ok 3 - fast-import: fail on invalid branch name "bad[branch]name"
expecting success of 1430.4 'git branch shows badly named ref as warning':
test-tool ref-store main update-ref msg "refs/heads/broken...ref" $main_sha1 $ZERO_OID REF_SKIP_REFNAME_VERIFICATION &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg refs/heads/broken...ref" &&
git branch >output 2>error &&
test_i18ngrep -e "ignoring ref with broken name refs/heads/broken\.\.\.ref" error &&
! grep -e "broken\.\.\.ref" output
warning: ignoring ref with broken name refs/heads/broken...ref
ok 4 - git branch shows badly named ref as warning
expecting success of 1430.5 'branch -d can delete badly named ref':
test-tool ref-store main update-ref msg "refs/heads/broken...ref" $main_sha1 $ZERO_OID REF_SKIP_REFNAME_VERIFICATION &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg refs/heads/broken...ref" &&
git branch -d broken...ref &&
git branch >output 2>error &&
! grep -e "broken\.\.\.ref" error &&
! grep -e "broken\.\.\.ref" output
Deleted branch broken...ref (was broken).
ok 5 - branch -d can delete badly named ref
expecting success of 1430.6 'branch -D can delete badly named ref':
test-tool ref-store main update-ref msg "refs/heads/broken...ref" $main_sha1 $ZERO_OID REF_SKIP_REFNAME_VERIFICATION &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg refs/heads/broken...ref" &&
git branch -D broken...ref &&
git branch >output 2>error &&
! grep -e "broken\.\.\.ref" error &&
! grep -e "broken\.\.\.ref" output
Deleted branch broken...ref (was broken).
ok 6 - branch -D can delete badly named ref
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
error: branch '../../my-private-file' not found.
ok 7 - branch -D cannot delete non-ref in .git dir
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
error: branch 'foo////./././../../../my-private-file' not found.
ok 8 - branch -D cannot delete ref in .git dir
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
error: branch '/<<PKGBUILDDIR>>/t/trash directory.t1430-bad-ref-name/.git/refs/heads/extra' not found.
ok 9 - branch -D cannot delete absolute path
expecting success of 1430.10 'git branch cannot create a badly named ref':
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg 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
fatal: 'broken...ref' is not a valid branch name
ok 10 - git branch cannot create a badly named ref
expecting success of 1430.11 'branch -m cannot rename to a bad ref name':
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg 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 main goodref &&
git branch >output 2>error &&
! grep -e "broken\.\.\.ref" error &&
! grep -e "broken\.\.\.ref" output
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
checking known breakage of 1430.12 'branch -m can rename from a bad ref name':
test-tool ref-store main update-ref msg "refs/heads/broken...ref" $main_sha1 $ZERO_OID REF_SKIP_REFNAME_VERIFICATION &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg refs/heads/broken...ref" &&
git branch -m broken...ref renamed &&
test_cmp_rev main renamed &&
git branch >output 2>error &&
! grep -e "broken\.\.\.ref" error &&
! grep -e "broken\.\.\.ref" output
fatal: Invalid branch name: 'broken...ref'
not ok 12 - branch -m can rename from a bad ref name # TODO known breakage
expecting success of 1430.13 'push cannot create a badly named ref':
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg 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
fatal: invalid refspec 'HEAD:refs/heads/broken...ref'
ok 13 - push cannot create a badly named ref
checking known breakage of 1430.14 'push --mirror can delete badly named ref':
top=$(pwd) &&
git init src &&
git init dest &&
(
cd src &&
test_commit one
) &&
(
cd dest &&
test_commit two &&
git checkout --detach &&
test-tool ref-store main update-ref msg "refs/heads/broken...ref" $main_sha1 $ZERO_OID REF_SKIP_REFNAME_VERIFICATION
) &&
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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1430-bad-ref-name/src/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1430-bad-ref-name/dest/.git/
[main (root-commit) 4331c28] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
[main (root-commit) 9db02ea] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 two.t
HEAD is now at 9db02ea two
fatal: update_ref failed for ref 'refs/heads/broken...ref': cannot update ref 'refs/heads/broken...ref': trying to write ref 'refs/heads/broken...ref' with nonexistent object 139b20d8e6c5b496de61f033f642d0e3dbff528d
not ok 14 - push --mirror can delete badly named ref # TODO known breakage
expecting success of 1430.15 'rev-parse skips symref pointing to broken name':
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg refs/heads/broken...ref" &&
git branch shadow one &&
test-tool ref-store main update-ref msg "refs/heads/broken...ref" $main_sha1 $ZERO_OID REF_SKIP_REFNAME_VERIFICATION &&
test-tool ref-store main create-symref refs/tags/shadow refs/heads/broken...ref msg &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg 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
warning: ignoring dangling symref refs/tags/shadow
ok 15 - rev-parse skips symref pointing to broken name
expecting success of 1430.16 'for-each-ref emits warnings for broken names':
test-tool ref-store main update-ref msg "refs/heads/broken...ref" $main_sha1 $ZERO_OID REF_SKIP_REFNAME_VERIFICATION &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg refs/heads/broken...ref" &&
printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg refs/heads/badname" &&
printf "ref: refs/heads/main\n" >.git/refs/heads/broken...symref &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg 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
warning: ignoring ref with broken name refs/heads/broken...ref
warning: ignoring ref with broken name refs/heads/broken...symref
ok 16 - for-each-ref emits warnings for broken names
expecting success of 1430.17 'update-ref -d can delete broken name':
test-tool ref-store main update-ref msg "refs/heads/broken...ref" $main_sha1 $ZERO_OID REF_SKIP_REFNAME_VERIFICATION &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg 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
ok 17 - update-ref -d can delete broken name
expecting success of 1430.18 'branch -d can delete broken name':
test-tool ref-store main update-ref msg "refs/heads/broken...ref" $main_sha1 $ZERO_OID REF_SKIP_REFNAME_VERIFICATION &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg 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
Deleted branch broken...ref (was broken).
ok 18 - branch -d can delete broken name
expecting success of 1430.19 'update-ref --no-deref -d can delete symref to broken name':
test-tool ref-store main update-ref msg "refs/heads/broken...ref" $main_sha1 $ZERO_OID REF_SKIP_REFNAME_VERIFICATION &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg refs/heads/broken...ref" &&
test-tool ref-store main create-symref refs/heads/badname refs/heads/broken...ref msg &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg 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
ok 19 - update-ref --no-deref -d can delete symref to broken name
expecting success of 1430.20 'branch -d can delete symref to broken name':
test-tool ref-store main update-ref msg "refs/heads/broken...ref" $main_sha1 $ZERO_OID REF_SKIP_REFNAME_VERIFICATION &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg refs/heads/broken...ref" &&
test-tool ref-store main create-symref refs/heads/badname refs/heads/broken...ref msg &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg 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
Deleted branch badname (was refs/heads/broken...ref).
ok 20 - branch -d can delete symref to broken name
expecting success of 1430.21 'update-ref --no-deref -d can delete dangling symref to broken name':
test-tool ref-store main create-symref refs/heads/badname refs/heads/broken...ref msg &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg 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
ok 21 - update-ref --no-deref -d can delete dangling symref to broken name
expecting success of 1430.22 'branch -d can delete dangling symref to broken name':
test-tool ref-store main create-symref refs/heads/badname refs/heads/broken...ref msg &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg 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
Deleted branch badname (was refs/heads/broken...ref).
ok 22 - branch -d can delete dangling symref to broken name
expecting success of 1430.23 'update-ref -d can delete broken name through symref':
test-tool ref-store main update-ref msg "refs/heads/broken...ref" $main_sha1 $ZERO_OID REF_SKIP_REFNAME_VERIFICATION &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg refs/heads/broken...ref" &&
test-tool ref-store main create-symref refs/heads/badname refs/heads/broken...ref msg &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg 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
ok 23 - update-ref -d can delete broken name through symref
expecting success of 1430.24 'update-ref --no-deref -d can delete symref with broken name':
printf "ref: refs/heads/main\n" >.git/refs/heads/broken...symref &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg 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
ok 24 - update-ref --no-deref -d can delete symref with broken name
expecting success of 1430.25 'branch -d can delete symref with broken name':
printf "ref: refs/heads/main\n" >.git/refs/heads/broken...symref &&
test_when_finished "test-tool ref-store main delete-refs REF_NO_DEREF msg 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/main)" output &&
test_must_be_empty error
Deleted branch broken...symref (was refs/heads/main).
ok 25 - branch -d can delete symref with broken name
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 "test-tool ref-store main delete-refs REF_NO_DEREF msg 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
ok 26 - update-ref --no-deref -d can delete dangling symref with broken name
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 "test-tool ref-store main delete-refs REF_NO_DEREF msg 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
Deleted branch broken...symref (was refs/heads/idonotexist).
ok 27 - branch -d can delete dangling symref with broken name
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
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 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
error: refusing to update ref with bad name '/<<PKGBUILDDIR>>/t/trash directory.t1430-bad-ref-name/.git/refs/heads/extra'
ok 29 - update-ref -d cannot delete absolute path
expecting success of 1430.30 'update-ref --stdin fails create with bad ref name':
echo "create ~a refs/heads/main" >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: invalid ref format: ~a" err
fatal: invalid ref format: ~a
ok 30 - update-ref --stdin fails create with bad ref name
expecting success of 1430.31 'update-ref --stdin fails update with bad ref name':
echo "update ~a refs/heads/main" >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: invalid ref format: ~a" err
fatal: invalid ref format: ~a
ok 31 - update-ref --stdin fails update with bad ref name
expecting success of 1430.32 'update-ref --stdin fails delete with bad ref name':
echo "delete ~a refs/heads/main" >stdin &&
test_must_fail git update-ref --stdin <stdin 2>err &&
grep "fatal: invalid ref format: ~a" err
fatal: invalid ref format: ~a
ok 32 - update-ref --stdin fails delete with bad ref name
expecting success of 1430.33 'update-ref --stdin -z fails create with bad ref name':
printf "%s\0" "create ~a " refs/heads/main >stdin &&
test_must_fail git update-ref -z --stdin <stdin 2>err &&
grep "fatal: invalid ref format: ~a " err
fatal: invalid ref format: ~a
ok 33 - update-ref --stdin -z fails create with bad ref name
expecting success of 1430.34 'update-ref --stdin -z fails update with bad ref name':
printf "%s\0" "update ~a" refs/heads/main "" >stdin &&
test_must_fail git update-ref -z --stdin <stdin 2>err &&
grep "fatal: invalid ref format: ~a" err
fatal: invalid ref format: ~a
ok 34 - update-ref --stdin -z fails update with bad ref name
expecting success of 1430.35 'update-ref --stdin -z fails delete with bad ref name':
printf "%s\0" "delete ~a" refs/heads/main >stdin &&
test_must_fail git update-ref -z --stdin <stdin 2>err &&
grep "fatal: invalid ref format: ~a" err
fatal: invalid ref format: ~a
ok 35 - update-ref --stdin -z fails delete with bad ref name
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
fatal: 'HEAD' is not a valid branch name
ok 36 - branch rejects HEAD as a branch name
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
fatal: 'HEAD' is not a valid branch name
ok 37 - checkout -b rejects HEAD as a branch name
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
d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 refs/heads/HEAD
ok 38 - update-ref can operate on refs/heads/HEAD
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
Deleted branch HEAD (was d79ce16).
ok 39 - branch -d can remove refs/heads/HEAD
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
warning: Renamed a misnamed branch 'HEAD' away
d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 refs/heads/tail
ok 40 - branch -m can rename refs/heads/HEAD
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
Deleted branch -dash (was d79ce16).
ok 41 - branch -d can remove refs/heads/-dash
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
warning: Renamed a misnamed branch '-dash' away
d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 refs/heads/dash
ok 42 - branch -m can rename refs/heads/-dash
# still have 2 known breakage(s)
# passed all remaining 40 test(s)
1..42
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1451-fsck-buffer.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1451-fsck-buffer/.git/
expecting success of 1451.1 'create valid objects':
git commit --allow-empty -m foo &&
commit=$(git rev-parse --verify HEAD) &&
tree=$(git rev-parse --verify HEAD^{tree})
[master (root-commit) 2093db0] foo
Author: A U Thor <author@example.com>
ok 1 - create valid objects
expecting success of 1451.2 'reset input to empty':
>base
ok 2 - reset input to empty
expecting success of 1451.3 'truncated commit (missingTree, "")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingTree: invalid format - expected 'tree' line
ok 3 - truncated commit (missingTree, "")
expecting success of 1451.4 'truncated commit (missingTree, "tr")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingTree: invalid format - expected 'tree' line
ok 4 - truncated commit (missingTree, "tr")
expecting success of 1451.5 'truncated commit (missingTree, "tree")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingTree: invalid format - expected 'tree' line
ok 5 - truncated commit (missingTree, "tree")
expecting success of 1451.6 'truncated commit (badTreeSha1, "tree ")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badTreeSha1: invalid 'tree' line format - bad sha1
ok 6 - truncated commit (badTreeSha1, "tree ")
expecting success of 1451.7 'truncated commit (badTreeSha1, "tree 1234")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badTreeSha1: invalid 'tree' line format - bad sha1
ok 7 - truncated commit (badTreeSha1, "tree 1234")
expecting success of 1451.8 'add tree line':
echo "$content" >>base
ok 8 - add tree line
expecting success of 1451.9 'truncated commit (missingAuthor, "")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingAuthor: invalid format - expected 'author' line
ok 9 - truncated commit (missingAuthor, "")
expecting success of 1451.10 'truncated commit (missingAuthor, "par")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingAuthor: invalid format - expected 'author' line
ok 10 - truncated commit (missingAuthor, "par")
expecting success of 1451.11 'truncated commit (missingAuthor, "parent")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingAuthor: invalid format - expected 'author' line
ok 11 - truncated commit (missingAuthor, "parent")
expecting success of 1451.12 'truncated commit (badParentSha1, "parent ")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badParentSha1: invalid 'parent' line format - bad sha1
ok 12 - truncated commit (badParentSha1, "parent ")
expecting success of 1451.13 'truncated commit (badParentSha1, "parent 1234")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badParentSha1: invalid 'parent' line format - bad sha1
ok 13 - truncated commit (badParentSha1, "parent 1234")
expecting success of 1451.14 'add parent line':
echo "$content" >>base
ok 14 - add parent line
expecting success of 1451.15 'truncated commit (missingAuthor, "")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingAuthor: invalid format - expected 'author' line
ok 15 - truncated commit (missingAuthor, "")
expecting success of 1451.16 'truncated commit (missingAuthor, "au")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingAuthor: invalid format - expected 'author' line
ok 16 - truncated commit (missingAuthor, "au")
expecting success of 1451.17 'truncated commit (missingAuthor, "author")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingAuthor: invalid format - expected 'author' line
ok 17 - truncated commit (missingAuthor, "author")
expecting success of 1451.18 'truncated commit (missingEmail, "author ")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingEmail: invalid author/committer line - missing email
ok 18 - truncated commit (missingEmail, "author ")
expecting success of 1451.19 'truncated commit (missingEmail, "author name")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingEmail: invalid author/committer line - missing email
ok 19 - truncated commit (missingEmail, "author name")
expecting success of 1451.20 'truncated commit (badEmail, "author name <")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badEmail: invalid author/committer line - bad email
ok 20 - truncated commit (badEmail, "author name <")
expecting success of 1451.21 'truncated commit (badEmail, "author name <email")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badEmail: invalid author/committer line - bad email
ok 21 - truncated commit (badEmail, "author name <email")
expecting success of 1451.22 'truncated commit (missingSpaceBeforeDate, "author name <email>")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingSpaceBeforeDate: invalid author/committer line - missing space before date
ok 22 - truncated commit (missingSpaceBeforeDate, "author name <email>")
expecting success of 1451.23 'truncated commit (badDate, "author name <email> ")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badDate: invalid author/committer line - bad date
ok 23 - truncated commit (badDate, "author name <email> ")
expecting success of 1451.24 'truncated commit (badDate, "author name <email> 1234")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badDate: invalid author/committer line - bad date
ok 24 - truncated commit (badDate, "author name <email> 1234")
expecting success of 1451.25 'truncated commit (badTimezone, "author name <email> 1234 ")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badTimezone: invalid author/committer line - bad time zone
ok 25 - truncated commit (badTimezone, "author name <email> 1234 ")
expecting success of 1451.26 'truncated commit (badTimezone, "author name <email> 1234 +")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badTimezone: invalid author/committer line - bad time zone
ok 26 - truncated commit (badTimezone, "author name <email> 1234 +")
expecting success of 1451.27 'add author line':
echo "$content" >>base
ok 27 - add author line
expecting success of 1451.28 'truncated commit (missingCommitter, "")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingCommitter: invalid format - expected 'committer' line
ok 28 - truncated commit (missingCommitter, "")
expecting success of 1451.29 'truncated commit (missingCommitter, "co")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingCommitter: invalid format - expected 'committer' line
ok 29 - truncated commit (missingCommitter, "co")
expecting success of 1451.30 'truncated commit (missingCommitter, "committer")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingCommitter: invalid format - expected 'committer' line
ok 30 - truncated commit (missingCommitter, "committer")
expecting success of 1451.31 'truncated commit (missingEmail, "committer ")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingEmail: invalid author/committer line - missing email
ok 31 - truncated commit (missingEmail, "committer ")
expecting success of 1451.32 'truncated commit (missingEmail, "committer name")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingEmail: invalid author/committer line - missing email
ok 32 - truncated commit (missingEmail, "committer name")
expecting success of 1451.33 'truncated commit (badEmail, "committer name <")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badEmail: invalid author/committer line - bad email
ok 33 - truncated commit (badEmail, "committer name <")
expecting success of 1451.34 'truncated commit (badEmail, "committer name <email")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badEmail: invalid author/committer line - bad email
ok 34 - truncated commit (badEmail, "committer name <email")
expecting success of 1451.35 'truncated commit (missingSpaceBeforeDate, "committer name <email>")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingSpaceBeforeDate: invalid author/committer line - missing space before date
ok 35 - truncated commit (missingSpaceBeforeDate, "committer name <email>")
expecting success of 1451.36 'truncated commit (badDate, "committer name <email> ")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badDate: invalid author/committer line - bad date
ok 36 - truncated commit (badDate, "committer name <email> ")
expecting success of 1451.37 'truncated commit (badDate, "committer name <email> 1234")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badDate: invalid author/committer line - bad date
ok 37 - truncated commit (badDate, "committer name <email> 1234")
expecting success of 1451.38 'truncated commit (badTimezone, "committer name <email> 1234 ")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badTimezone: invalid author/committer line - bad time zone
ok 38 - truncated commit (badTimezone, "committer name <email> 1234 ")
expecting success of 1451.39 'truncated commit (badTimezone, "committer name <email> 1234 +")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badTimezone: invalid author/committer line - bad time zone
ok 39 - truncated commit (badTimezone, "committer name <email> 1234 +")
expecting success of 1451.40 'add committer line':
echo "$content" >>base
ok 40 - add committer line
expecting success of 1451.41 'reset input to empty':
>base
ok 41 - reset input to empty
expecting success of 1451.42 'truncated tag (missingObject, "")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingObject: invalid format - expected 'object' line
ok 42 - truncated tag (missingObject, "")
expecting success of 1451.43 'truncated tag (missingObject, "obj")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingObject: invalid format - expected 'object' line
ok 43 - truncated tag (missingObject, "obj")
expecting success of 1451.44 'truncated tag (missingObject, "object")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingObject: invalid format - expected 'object' line
ok 44 - truncated tag (missingObject, "object")
expecting success of 1451.45 'truncated tag (badObjectSha1, "object ")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badObjectSha1: invalid 'object' line format - bad sha1
ok 45 - truncated tag (badObjectSha1, "object ")
expecting success of 1451.46 'truncated tag (badObjectSha1, "object 1234")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badObjectSha1: invalid 'object' line format - bad sha1
ok 46 - truncated tag (badObjectSha1, "object 1234")
expecting success of 1451.47 'add object line':
echo "$content" >>base
ok 47 - add object line
expecting success of 1451.48 'truncated tag (missingType, "")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingTypeEntry: invalid format - expected 'type' line
ok 48 - truncated tag (missingType, "")
expecting success of 1451.49 'truncated tag (missingType, "ty")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingTypeEntry: invalid format - expected 'type' line
ok 49 - truncated tag (missingType, "ty")
expecting success of 1451.50 'truncated tag (missingType, "type")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingTypeEntry: invalid format - expected 'type' line
ok 50 - truncated tag (missingType, "type")
expecting success of 1451.51 'truncated tag (badType, "type ")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badType: invalid 'type' value
ok 51 - truncated tag (badType, "type ")
expecting success of 1451.52 'truncated tag (badType, "type com")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badType: invalid 'type' value
ok 52 - truncated tag (badType, "type com")
expecting success of 1451.53 'add type line':
echo "$content" >>base
ok 53 - add type line
expecting success of 1451.54 'truncated tag (missingTagEntry, "")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingTagEntry: invalid format - expected 'tag' line
ok 54 - truncated tag (missingTagEntry, "")
expecting success of 1451.55 'truncated tag (missingTagEntry, "ta")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingTagEntry: invalid format - expected 'tag' line
ok 55 - truncated tag (missingTagEntry, "ta")
expecting success of 1451.56 'truncated tag (missingTagEntry, "tag")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingTagEntry: invalid format - expected 'tag' line
ok 56 - truncated tag (missingTagEntry, "tag")
expecting success of 1451.57 'truncated tag (badTagName, "tag ")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badTagName: invalid 'tag' name:
ok 57 - truncated tag (badTagName, "tag ")
expecting success of 1451.58 'add tag line':
echo "$content" >>base
ok 58 - add tag line
expecting success of 1451.59 'truncated tag (missingTagger, "")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingTaggerEntry: invalid format - expected 'tagger' line
ok 59 - truncated tag (missingTagger, "")
expecting success of 1451.60 'truncated tag (missingTagger, "ta")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingTaggerEntry: invalid format - expected 'tagger' line
ok 60 - truncated tag (missingTagger, "ta")
expecting success of 1451.61 'truncated tag (missingTagger, "tagger")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingTaggerEntry: invalid format - expected 'tagger' line
ok 61 - truncated tag (missingTagger, "tagger")
expecting success of 1451.62 'truncated tag (missingEmail, "tagger ")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingEmail: invalid author/committer line - missing email
ok 62 - truncated tag (missingEmail, "tagger ")
expecting success of 1451.63 'truncated tag (missingEmail, "tagger name")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingEmail: invalid author/committer line - missing email
ok 63 - truncated tag (missingEmail, "tagger name")
expecting success of 1451.64 'truncated tag (badEmail, "tagger name <")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badEmail: invalid author/committer line - bad email
ok 64 - truncated tag (badEmail, "tagger name <")
expecting success of 1451.65 'truncated tag (badEmail, "tagger name <email")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badEmail: invalid author/committer line - bad email
ok 65 - truncated tag (badEmail, "tagger name <email")
expecting success of 1451.66 'truncated tag (missingSpaceBeforeDate, "tagger name <email>")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: missingSpaceBeforeDate: invalid author/committer line - missing space before date
ok 66 - truncated tag (missingSpaceBeforeDate, "tagger name <email>")
expecting success of 1451.67 'truncated tag (badDate, "tagger name <email> ")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badDate: invalid author/committer line - bad date
ok 67 - truncated tag (badDate, "tagger name <email> ")
expecting success of 1451.68 'truncated tag (badDate, "tagger name <email> 1234")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badDate: invalid author/committer line - bad date
ok 68 - truncated tag (badDate, "tagger name <email> 1234")
expecting success of 1451.69 'truncated tag (badTimezone, "tagger name <email> 1234 ")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badTimezone: invalid author/committer line - bad time zone
ok 69 - truncated tag (badTimezone, "tagger name <email> 1234 ")
expecting success of 1451.70 'truncated tag (badTimezone, "tagger name <email> 1234 +")':
# do not pipe into hash-object here; we want to increase
# the chance that it uses a fixed-size buffer or mmap,
# and a pipe would be read into a strbuf.
{
cat base &&
echo "$content"
} >input &&
test_must_fail git hash-object -t "$type" input 2>err &&
grep "$fsck" err
error: object fails fsck: badTimezone: invalid author/committer line - bad time zone
ok 70 - truncated tag (badTimezone, "tagger name <email> 1234 +")
expecting success of 1451.71 'truncated tree (short hash)':
printf "100644 foo\0\1\1\1\1" >input &&
test_must_fail git hash-object -t tree input 2>err &&
grep badTree err
error: object fails fsck: badTree: cannot be parsed as a tree
ok 71 - truncated tree (short hash)
expecting success of 1451.72 'truncated tree (missing nul)':
# these two things are indistinguishable to the parser. The important
# thing about this is example is that there are enough bytes to
# make up a hash, and that there is no NUL (and we confirm that the
# parser does not walk past the end of the buffer).
printf "100644 a long filename, or a hash with missing nul?" >input &&
test_must_fail git hash-object -t tree input 2>err &&
grep badTree err
error: object fails fsck: badTree: cannot be parsed as a tree
ok 72 - truncated tree (missing nul)
# passed all 72 test(s)
1..72
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1013-read-tree-submodule.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1/.git/
[master (root-commit) 63c4304] Base inside first submodule
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 file1
create mode 100644 file2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub2/.git/
[master (root-commit) 27c5769] nested submodule base
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 file1
create mode 100644 file2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_repo/.git/
[master (root-commit) 27611a5] Base
Author: A U Thor <author@example.com>
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 '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_repo/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_repo/uninitialized_sub'...
done.
[add_sub1 09bcf53] Add sub1
Author: A U Thor <author@example.com>
2 files changed, 8 insertions(+)
create mode 100644 .gitmodules
create mode 160000 uninitialized_sub
Switched to a new branch 'remove_sub1'
warning: unable to rmdir 'sub1': Directory not empty
warning: unable to rmdir 'uninitialized_sub': Directory not empty
[remove_sub1 d6ba723] Revert "Add sub1"
Author: A U Thor <author@example.com>
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 <author@example.com>
2 files changed, 2 insertions(+), 1 deletion(-)
create mode 100644 file3
To /<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1
* [new branch] modifications -> modifications
[modify_sub1 cb2bda7] Modify sub1
Author: A U Thor <author@example.com>
Switched to a new branch 'add_nested_sub'
Switched to a new branch 'add_nested_sub'
Cloning into '/<<PKGBUILDDIR>>/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 <author@example.com>
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 <author@example.com>
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 <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file3
[modify_sub1_recursively 92fc14a] update nested sub
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[modify_sub1_recursively 953e869] update sub1, that updates nested sub
Author: A U Thor <author@example.com>
To /<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1
* [new branch] modify_sub1_recursively -> modify_sub1_recursively
To /<<PKGBUILDDIR>>/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 <author@example.com>
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'
[replace_directory_with_sub1 a2e65d5] Revert "Replace sub1 with directory"
Author: A U Thor <author@example.com>
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 <author@example.com>
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 <author@example.com>
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 <author@example.com>
Switched to a new branch 'valid_sub1'
[valid_sub1 3036e4e] Revert "Invalid sub1 commit"
Author: A U Thor <author@example.com>
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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
ok 1 - git read-tree -u -m --recurse-submodules: added submodule is checked out
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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
ok 2 - git read-tree -u -m --recurse-submodules: added submodule is checked out in empty dir
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 'origin/replace_sub1_with_file'.
fatal: Needed a single revision
branch 'replace_file_with_sub1' set up to track 'origin/replace_file_with_sub1'.
ok 3 - git read-tree -u -m --recurse-submodules: replace tracked file with submodule checks out submodule
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 'origin/replace_sub1_with_directory'.
fatal: Needed a single revision
branch 'replace_directory_with_sub1' set up to track 'origin/replace_directory_with_sub1'.
ok 4 - git read-tree -u -m --recurse-submodules: replace directory with submodule
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 'origin/no_submodule'.
branch 'modify_sub1_recursively' set up to track 'origin/modify_sub1_recursively'.
ok 5 - git read-tree -u -m --recurse-submodules: nested submodules are checked out
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'remove_sub1' set up to track 'origin/remove_sub1'.
ok 6 - git read-tree -u -m --recurse-submodules: removed submodule removes submodules working tree
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'remove_sub1' set up to track 'origin/remove_sub1'.
Migrating git directory of 'sub1' from
'/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1/.git' to
'/<<PKGBUILDDIR>>/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 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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
ok 8 - git read-tree -u -m --recurse-submodules: replace submodule with a file
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
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 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 'origin/add_nested_sub'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '8b3b3353ac8999eb3d8af8e947e0ef2a08a60008'
Submodule 'sub2' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub2) registered for path 'sub1/sub2'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/no_submodule'.
Directory sub1 doesn't exist
ok 10 - git read-tree -u -m --recurse-submodules: worktrees of nested submodules are removed
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'modify_sub1' set up to track 'origin/modify_sub1'.
ok 11 - git read-tree -u -m --recurse-submodules: modified submodule updates submodule work tree
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'invalid_sub1' set up to track 'origin/invalid_sub1'.
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 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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/modify_sub1'.
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 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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
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 1013.15 'git read-tree -u -m --recurse-submodules: added submodule removes an untracked ignored file':
test_when_finished "rm -rf submodule_update/.git/info" &&
prolog &&
reset_work_tree_to_interested no_submodule &&
(
cd submodule_update &&
git branch -t add_sub1 origin/add_sub1 &&
: >sub1 &&
mkdir .git/info &&
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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
ok 15 - git read-tree -u -m --recurse-submodules: added submodule removes an untracked ignored file
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
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
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
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 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 &&
rm -rf .git/modules/sub1/info &&
git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
mkdir .git/modules/sub1/info &&
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
ok 18 - git read-tree -u -m --recurse-submodules: replace submodule with a file works ignores ignored files in submodule
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'modify_sub1' set up to track 'origin/modify_sub1'.
ok 19 - git -c submodule.recurse=true read-tree -u -m: modified submodule updates submodule work tree
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 'origin/add_nested_sub'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '8b3b3353ac8999eb3d8af8e947e0ef2a08a60008'
Submodule 'sub2' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub2) registered for path 'sub1/sub2'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/modify_sub1_recursively'.
ok 20 - git read-tree -u -m --recurse-submodules: modified submodule updates submodule recursively
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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
ok 21 - git read-tree -u --reset --recurse-submodules: added submodule is checked out
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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
ok 22 - git read-tree -u --reset --recurse-submodules: added submodule is checked out in empty dir
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 'origin/replace_sub1_with_file'.
fatal: Needed a single revision
branch 'replace_file_with_sub1' set up to track 'origin/replace_file_with_sub1'.
ok 23 - git read-tree -u --reset --recurse-submodules: replace tracked file with submodule checks out submodule
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 'origin/replace_sub1_with_directory'.
fatal: Needed a single revision
branch 'replace_directory_with_sub1' set up to track 'origin/replace_directory_with_sub1'.
ok 24 - git read-tree -u --reset --recurse-submodules: replace directory with submodule
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 'origin/no_submodule'.
branch 'modify_sub1_recursively' set up to track 'origin/modify_sub1_recursively'.
ok 25 - git read-tree -u --reset --recurse-submodules: nested submodules are checked out
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'remove_sub1' set up to track 'origin/remove_sub1'.
ok 26 - git read-tree -u --reset --recurse-submodules: removed submodule removes submodules working tree
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'remove_sub1' set up to track 'origin/remove_sub1'.
Migrating git directory of 'sub1' from
'/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1/.git' to
'/<<PKGBUILDDIR>>/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 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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
ok 28 - git read-tree -u --reset --recurse-submodules: replace submodule with a file
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
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 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 'origin/add_nested_sub'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '8b3b3353ac8999eb3d8af8e947e0ef2a08a60008'
Submodule 'sub2' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub2) registered for path 'sub1/sub2'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/no_submodule'.
Directory sub1 doesn't exist
ok 30 - git read-tree -u --reset --recurse-submodules: worktrees of nested submodules are removed
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'modify_sub1' set up to track 'origin/modify_sub1'.
ok 31 - git read-tree -u --reset --recurse-submodules: modified submodule updates submodule work tree
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'invalid_sub1' set up to track 'origin/invalid_sub1'.
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 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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/modify_sub1'.
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 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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
ok 34 - git read-tree -u --reset --recurse-submodules: added submodule does remove untracked unignored file with same name when forced
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
ok 35 - git read-tree -u --reset --recurse-submodules: replace submodule with a directory
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
Migrating git directory of 'sub1' from
'/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1/.git' to
'/<<PKGBUILDDIR>>/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 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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
ok 37 - git read-tree -u --reset --recurse-submodules: replace submodule with a file ignoring ignored files
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 'origin/invalid_sub1'.
fatal: Needed a single revision
branch 'valid_sub1' set up to track 'origin/valid_sub1'.
ok 38 - git read-tree -u --reset --recurse-submodules: modified submodule does update submodule work tree from invalid commit
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'modify_sub1' set up to track 'origin/modify_sub1'.
ok 39 - git read-tree -u --reset --recurse-submodules: updating submodules fixes .git links
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 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 'origin/replace_sub1_with_file'.
fatal: Needed a single revision
branch 'replace_file_with_sub1' set up to track 'origin/replace_file_with_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 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 'origin/replace_sub1_with_directory'.
fatal: Needed a single revision
branch 'replace_directory_with_sub1' set up to track 'origin/replace_directory_with_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'remove_sub1' set up to track 'origin/remove_sub1'.
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 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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'remove_sub1' set up to track 'origin/remove_sub1'.
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 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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
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 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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
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
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
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
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
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 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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'modify_sub1' set up to track 'origin/modify_sub1'.
Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53'
ok 51 - git_test_func: modified submodule does not update submodule work tree
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'invalid_sub1' set up to track 'origin/invalid_sub1'.
fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789
fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789
fatal: 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 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 'origin/invalid_sub1'.
fatal: Needed a single revision
branch 'valid_sub1' set up to track 'origin/valid_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
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 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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 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 'origin/replace_sub1_with_file'.
fatal: Needed a single revision
branch 'replace_file_with_sub1' set up to track 'origin/replace_file_with_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 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 'origin/replace_sub1_with_directory'.
fatal: Needed a single revision
branch 'replace_directory_with_sub1' set up to track 'origin/replace_directory_with_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'remove_sub1' set up to track 'origin/remove_sub1'.
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 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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'remove_sub1' set up to track 'origin/remove_sub1'.
warning: unable to rmdir 'sub1': Directory not empty
ok 60 - git_test_func: removed submodule leaves submodule containing a .git directory alone
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
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
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
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
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
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
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
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 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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'modify_sub1' set up to track 'origin/modify_sub1'.
Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53'
ok 65 - git_test_func: modified submodule does not update submodule work tree
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1'
branch 'invalid_sub1' set up to track 'origin/invalid_sub1'.
fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789
fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789
fatal: 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 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 'origin/invalid_sub1'.
fatal: Needed a single revision
branch 'valid_sub1' set up to track 'origin/valid_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
ok 68 - git_test_func: added submodule does remove untracked unignored file with same name when forced
# still have 10 known breakage(s)
# passed all remaining 58 test(s)
1..68
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1500-rev-parse.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1500-rev-parse/.git/
expecting success of 1500.1 'setup':
mkdir -p sub/dir work &&
cp -R .git repo.git &&
git checkout -B main &&
test_commit abc &&
git checkout -b side &&
test_commit def &&
git checkout main &&
git worktree add worktree side
Switched to a new branch 'main'
[main (root-commit) 4decab4] abc
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 abc.t
Switched to a new branch 'side'
[side 0620bdf] def
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 def.t
Switched to branch 'main'
Preparing worktree (checking out 'side')
HEAD is now at 0620bdf def
ok 1 - setup
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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 1500.5 'toplevel: --show-prefix':
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 &&
echo "$expect" >expect &&
git ${d:+-C} ${d:+"$d"} rev-parse $o >actual &&
test_cmp expect actual
ok 5 - toplevel: --show-prefix
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 &&
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 &&
echo "$expect" >expect &&
git ${d:+-C} ${d:+"$d"} rev-parse $o >actual &&
test_cmp expect actual
ok 6 - toplevel: --git-dir
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 &&
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 &&
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 1500.8 '.git/: --is-bare-repository':
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 &&
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 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 &&
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 &&
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 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 &&
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 1500.11 '.git/: --show-prefix':
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 &&
echo "$expect" >expect &&
git ${d:+-C} ${d:+"$d"} rev-parse $o >actual &&
test_cmp expect actual
ok 11 - .git/: --show-prefix
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 &&
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 &&
echo "$expect" >expect &&
git ${d:+-C} ${d:+"$d"} rev-parse $o >actual &&
test_cmp expect actual
ok 12 - .git/: --git-dir
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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 1500.17 '.git/objects/: --show-prefix':
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 &&
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 1500.18 '.git/objects/: --git-dir':
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 &&
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 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 &&
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 &&
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 1500.20 'subdirectory: --is-bare-repository':
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 1500.23 'subdirectory: --show-prefix':
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 &&
echo "$expect" >expect &&
git ${d:+-C} ${d:+"$d"} rev-parse $o >actual &&
test_cmp expect actual
ok 23 - subdirectory: --show-prefix
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 &&
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 &&
echo "$expect" >expect &&
git ${d:+-C} ${d:+"$d"} rev-parse $o >actual &&
test_cmp expect actual
ok 24 - subdirectory: --git-dir
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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 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 &&
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 &&
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 1500.60 'rev-parse --path-format=absolute':
test_one "." "$ROOT/.git" --path-format=absolute --git-dir &&
test_one "." "$ROOT/.git" --path-format=absolute --git-common-dir &&
test_one "sub/dir" "$ROOT/.git" --path-format=absolute --git-dir &&
test_one "sub/dir" "$ROOT/.git" --path-format=absolute --git-common-dir &&
test_one "worktree" "$ROOT/.git/worktrees/worktree" --path-format=absolute --git-dir &&
test_one "worktree" "$ROOT/.git" --path-format=absolute --git-common-dir &&
test_one "." "$ROOT" --path-format=absolute --show-toplevel &&
test_one "." "$ROOT/.git/objects" --path-format=absolute --git-path objects &&
test_one "." "$ROOT/.git/objects/foo/bar/baz" --path-format=absolute --git-path objects/foo/bar/baz
ok 60 - rev-parse --path-format=absolute
expecting success of 1500.61 'rev-parse --path-format=relative':
test_one "." ".git" --path-format=relative --git-dir &&
test_one "." ".git" --path-format=relative --git-common-dir &&
test_one "sub/dir" "../../.git" --path-format=relative --git-dir &&
test_one "sub/dir" "../../.git" --path-format=relative --git-common-dir &&
test_one "worktree" "../.git/worktrees/worktree" --path-format=relative --git-dir &&
test_one "worktree" "../.git" --path-format=relative --git-common-dir &&
test_one "." "./" --path-format=relative --show-toplevel &&
test_one "." ".git/objects" --path-format=relative --git-path objects &&
test_one "." ".git/objects/foo/bar/baz" --path-format=relative --git-path objects/foo/bar/baz
ok 61 - rev-parse --path-format=relative
expecting success of 1500.62 '--path-format=relative does not affect --absolute-git-dir':
git rev-parse --path-format=relative --absolute-git-dir >actual &&
echo "$ROOT/.git" >expect &&
test_cmp expect actual
ok 62 - --path-format=relative does not affect --absolute-git-dir
expecting success of 1500.63 '--path-format can change in the middle of the command line':
git rev-parse --path-format=absolute --git-dir --path-format=relative --git-path objects/foo/bar >actual &&
cat >expect <<-EOF &&
$ROOT/.git
.git/objects/foo/bar
EOF
test_cmp expect actual
ok 63 - --path-format can change in the middle of the command line
expecting success of 1500.64 '--path-format does not segfault without an argument':
test_must_fail git rev-parse --path-format
fatal: --path-format requires an argument
ok 64 - --path-format does not segfault without an argument
expecting success of 1500.65 'git-common-dir from worktree root':
echo .git >expect &&
git rev-parse --git-common-dir >actual &&
test_cmp expect actual
ok 65 - git-common-dir from worktree root
expecting success of 1500.66 '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
ok 66 - git-common-dir inside sub-dir
expecting success of 1500.67 'git-path from worktree root':
echo .git/objects >expect &&
git rev-parse --git-path objects >actual &&
test_cmp expect actual
ok 67 - git-path from worktree root
expecting success of 1500.68 '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
ok 68 - git-path inside sub-dir
expecting success of 1500.69 '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
[main b250333] test_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 test_commit.t
Cloning into 'shallow'...
ok 69 - rev-parse --is-shallow-repository in shallow repo
expecting success of 1500.70 'rev-parse --is-shallow-repository in non-shallow repo':
echo false >expect &&
git rev-parse --is-shallow-repository >actual &&
test_cmp expect actual
ok 70 - rev-parse --is-shallow-repository in non-shallow repo
expecting success of 1500.71 'rev-parse --show-object-format in repo':
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
fatal: unknown mode for --show-object-format: squeamish-ossifrage
ok 71 - rev-parse --show-object-format in repo
expecting success of 1500.72 '--show-toplevel from subdir of working tree':
pwd >expect &&
git -C sub/dir rev-parse --show-toplevel >actual &&
test_cmp expect actual
ok 72 - --show-toplevel from subdir of working tree
expecting success of 1500.73 '--show-toplevel from inside .git':
test_must_fail git -C .git rev-parse --show-toplevel
fatal: this operation must be run in a work tree
ok 73 - --show-toplevel from inside .git
expecting success of 1500.74 'showing the superproject correctly':
git rev-parse --show-superproject-working-tree >out &&
test_must_be_empty out &&
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 &&
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 main &&
git -C super/dir/sub checkout -b branch2 main &&
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 &&
git -C super/dir/sub rev-parse --show-superproject-working-tree >out &&
test_cmp expect out
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1500-rev-parse/super/.git/
[main (root-commit) 6703cdc] test_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 test_commit.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1500-rev-parse/sub/.git/
[main (root-commit) 5c184ab] test_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 test_commit.t
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1500-rev-parse/super/dir/sub'...
done.
[main b28d39e] submodule_add
Author: A U Thor <author@example.com>
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 7018b5f] branch1_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 branch1_commit.t
[branch1 e08f379] branch1_commit
Author: A U Thor <author@example.com>
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 6aad707] branch2_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 branch2_commit.t
[branch2 32c6339] branch2_commit
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+), 1 deletion(-)
create mode 100644 branch2_commit.t
Failed to merge submodule dir/sub
CONFLICT (submodule): Merge conflict in dir/sub
Recursive merging with submodules currently only supports trivial cases.
Please manually handle the merging of each conflicted submodule.
This can be accomplished with the following steps:
- go to submodule (dir/sub), and either merge commit 7018b5f
or update to an existing commit which has merged those changes
- come back to superproject and run:
git add dir/sub
to record the above merge or update
- resolve any other conflicts in the superproject
- commit the resulting index in the superproject
Automatic merge failed; fix conflicts and then commit the result.
ok 74 - showing the superproject correctly
expecting success of 1500.75 'rev-parse --since= unsqueezed ordering':
x1=--since=1970-01-01T00:00:01Z &&
x2=--since=1970-01-01T00:00:02Z &&
x3=--since=1970-01-01T00:00:03Z &&
git rev-parse $x1 $x1 $x3 $x2 >actual &&
cat >expect <<-EOF &&
--max-age=1
--max-age=1
--max-age=3
--max-age=2
EOF
test_cmp expect actual
ok 75 - rev-parse --since= unsqueezed ordering
# passed all 75 test(s)
1..75
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1502-rev-parse-parseopt.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1502-rev-parse-parseopt/.git/
expecting success of 1502.1 'setup optionspec':
sed -e "s/^|//" >optionspec <<\EOF
|some-command [options] <args>...
|
|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
ok 1 - setup optionspec
expecting success of 1502.2 'setup optionspec-no-switches':
sed -e "s/^|//" >optionspec_no_switches <<\EOF
|some-command [options] <args>...
|
|some-command does foo and bar!
|--
EOF
ok 2 - setup optionspec-no-switches
expecting success of 1502.3 'setup optionspec-only-hidden-switches':
sed -e "s/^|//" >optionspec_only_hidden_switches <<\EOF
|some-command [options] <args>...
|
|some-command does foo and bar!
|--
|hidden1* A hidden switch
EOF
ok 3 - setup optionspec-only-hidden-switches
expecting success of 1502.4 'test --parseopt help output':
sed -e "s/^|//" >expect <<\END_EXPECT &&
|cat <<\EOF
|usage: some-command [options] <args>...
|
| 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
END_EXPECT
test_expect_code 129 git rev-parse --parseopt -- -h > output < optionspec &&
test_cmp expect output
ok 4 - test --parseopt help output
expecting success of 1502.5 'test --parseopt help output no switches':
sed -e "s/^|//" >expect <<\END_EXPECT &&
|cat <<\EOF
|usage: some-command [options] <args>...
|
| some-command does foo and bar!
|
|EOF
END_EXPECT
test_expect_code 129 git rev-parse --parseopt -- -h > output < optionspec_no_switches &&
test_cmp expect output
ok 5 - test --parseopt help output no switches
expecting success of 1502.6 'test --parseopt help output hidden switches':
sed -e "s/^|//" >expect <<\END_EXPECT &&
|cat <<\EOF
|usage: some-command [options] <args>...
|
| some-command does foo and bar!
|
|EOF
END_EXPECT
test_expect_code 129 git rev-parse --parseopt -- -h > output < optionspec_only_hidden_switches &&
test_cmp expect output
ok 6 - test --parseopt help output hidden switches
expecting success of 1502.7 'test --parseopt help-all output hidden switches':
sed -e "s/^|//" >expect <<\END_EXPECT &&
|cat <<\EOF
|usage: some-command [options] <args>...
|
| 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_cmp expect output
ok 7 - test --parseopt help-all output hidden switches
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] <args>...
|
| 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
|
END_EXPECT
test_expect_code 129 git rev-parse --parseopt -- --does-not-exist 1>/dev/null 2>output < optionspec &&
test_cmp expect output
ok 8 - test --parseopt invalid switch help output
expecting success of 1502.9 'setup expect.1':
cat > expect <<EOF
set -- --foo --bar 'ham' -b --aswitch -- 'arg'
EOF
ok 9 - setup expect.1
expecting success of 1502.10 'test --parseopt':
git rev-parse --parseopt -- --foo --bar=ham --baz --aswitch arg < optionspec > output &&
test_cmp expect output
ok 10 - test --parseopt
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
ok 11 - test --parseopt with mixed options and arguments
expecting success of 1502.12 'setup expect.2':
cat > expect <<EOF
set -- --foo -- 'arg' '--bar=ham'
EOF
ok 12 - setup expect.2
expecting success of 1502.13 'test --parseopt with --':
git rev-parse --parseopt -- --foo -- arg --bar=ham < optionspec > output &&
test_cmp expect output
ok 13 - test --parseopt with --
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
ok 14 - test --parseopt --stop-at-non-option
expecting success of 1502.15 'setup expect.3':
cat > expect <<EOF
set -- --foo -- '--' 'arg' '--bar=ham'
EOF
ok 15 - setup expect.3
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
ok 16 - test --parseopt --keep-dashdash
expecting success of 1502.17 'setup expect.4':
cat >expect <<EOF
set -- --foo -- '--' 'arg' '--spam=ham'
EOF
ok 17 - setup expect.4
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 <optionspec >output &&
test_cmp expect output
ok 18 - test --parseopt --keep-dashdash --stop-at-non-option with --
expecting success of 1502.19 'setup expect.5':
cat > expect <<EOF
set -- --foo -- 'arg' '--spam=ham'
EOF
ok 19 - setup expect.5
expecting success of 1502.20 'test --parseopt --keep-dashdash --stop-at-non-option without --':
git rev-parse --parseopt --keep-dashdash --stop-at-non-option -- --foo arg --spam=ham <optionspec >output &&
test_cmp expect output
ok 20 - test --parseopt --keep-dashdash --stop-at-non-option without --
expecting success of 1502.21 'setup expect.6':
cat > expect <<EOF
set -- --foo --bar='z' --baz -C'Z' --data='A' -- 'arg'
EOF
ok 21 - setup expect.6
expecting success of 1502.22 'test --parseopt --stuck-long':
git rev-parse --parseopt --stuck-long -- --foo --bar=z -b arg -CZ -dA <optionspec >output &&
test_cmp expect output
ok 22 - test --parseopt --stuck-long
expecting success of 1502.23 'setup expect.7':
cat > expect <<EOF
set -- --data='' -C --baz -- 'arg'
EOF
ok 23 - setup expect.7
expecting success of 1502.24 'test --parseopt --stuck-long and empty optional argument':
git rev-parse --parseopt --stuck-long -- --data= arg -C -b <optionspec >output &&
test_cmp expect output
ok 24 - test --parseopt --stuck-long and empty optional argument
expecting success of 1502.25 'setup expect.8':
cat > expect <<EOF
set -- --data --baz -- 'arg'
EOF
ok 25 - setup expect.8
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 <optionspec >output &&
test_cmp expect output
ok 26 - test --parseopt --stuck-long and long option with unset optional argument
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 <optionspec >output &&
test_cmp expect output
ok 27 - test --parseopt --stuck-long and short option with unset optional argument
expecting success of 1502.28 'test --parseopt help output: "wrapped" options normal "or:" lines':
sed -e "s/^|//" >spec <<-\EOF &&
|cmd [--some-option]
| [--another-option]
|cmd [--yet-another-option]
|--
|h,help show the help
EOF
sed -e "s/^|//" >expect <<-\END_EXPECT &&
|cat <<\EOF
|usage: cmd [--some-option]
| or: [--another-option]
| or: cmd [--yet-another-option]
|
| -h, --help show the help
|
|EOF
END_EXPECT
test_must_fail git rev-parse --parseopt -- -h >out <spec >actual &&
test_cmp expect actual
ok 28 - test --parseopt help output: "wrapped" options normal "or:" lines
expecting success of 1502.29 'test --parseopt invalid opt-spec':
test_write_lines x -- "=, x" >spec &&
echo "fatal: missing opt-spec before option flags" >expect &&
test_must_fail git rev-parse --parseopt -- >out <spec 2>err &&
test_cmp expect err
ok 29 - test --parseopt invalid opt-spec
expecting success of 1502.30 'test --parseopt help output: multi-line blurb after empty line':
sed -e "s/^|//" >spec <<-\EOF &&
|cmd [--some-option]
| [--another-option]
|
|multi
|line
|blurb
|--
|h,help show the help
EOF
sed -e "s/^|//" >expect <<-\END_EXPECT &&
|cat <<\EOF
|usage: cmd [--some-option]
| or: [--another-option]
|
| multi
| line
| blurb
|
| -h, --help show the help
|
|EOF
END_EXPECT
test_must_fail git rev-parse --parseopt -- -h >out <spec >actual &&
test_cmp expect actual
ok 30 - test --parseopt help output: multi-line blurb after empty line
# passed all 30 test(s)
1..30
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1501-work-tree.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 </dev/null) &&
CHANGED_BLOB=$(echo changed | git hash-object -t blob --stdin) &&
EMPTY_BLOB7=$(echo $EMPTY_BLOB | sed "s/\(.......\).*/\1/") &&
CHANGED_BLOB7=$(echo $CHANGED_BLOB | sed "s/\(.......\).*/\1/") &&
mkdir -p work/sub/dir &&
mkdir -p work2 &&
mv .git repo.git
ok 1 - setup
expecting success of 1501.2 'setup: helper for testing rev-parse':
test_rev_parse() {
echo $1 >expected.bare &&
echo $2 >expected.inside-git &&
echo $3 >expected.inside-worktree &&
if test $# -ge 4
then
echo $4 >expected.prefix
fi &&
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 &&
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
}
ok 2 - setup: helper for testing rev-parse
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
ok 3 - setup: core.worktree = relative path
expecting success of 1501.4 'outside':
test_rev_parse false false false
ok 4 - outside
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 ""
)
'actual.prefix' is not empty, it contains:
ok 5 - inside work tree
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
ok 6 - empty prefix is actually written out
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/
)
ok 7 - subdir of work tree
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"
ok 8 - setup: core.worktree = absolute path
expecting success of 1501.9 'outside':
test_rev_parse false false false &&
(
cd work2 &&
test_rev_parse false false false
)
ok 9 - outside
expecting success of 1501.10 'inside work tree':
(
cd work &&
test_rev_parse false false true ""
)
'actual.prefix' is not empty, it contains:
ok 10 - inside work tree
expecting success of 1501.11 'subdir of work tree':
(
cd work/sub/dir &&
test_rev_parse false false true sub/dir/
)
ok 11 - subdir of work tree
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 12 - setup: GIT_WORK_TREE=relative (override core.worktree)
expecting success of 1501.13 'outside':
test_rev_parse false false false &&
(
cd work2 &&
test_rev_parse false false false
)
ok 13 - outside
expecting success of 1501.14 'inside work tree':
(
cd work &&
GIT_WORK_TREE=. &&
test_rev_parse false false true ""
)
'actual.prefix' is not empty, it contains:
ok 14 - inside work tree
expecting success of 1501.15 'subdir of work tree':
(
cd work/sub/dir &&
GIT_WORK_TREE=../.. &&
test_rev_parse false false true sub/dir/
)
ok 15 - subdir of work tree
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
ok 16 - setup: GIT_WORK_TREE=absolute, below git dir
expecting success of 1501.17 'outside':
echo outside &&
test_rev_parse false false false
outside
ok 17 - outside
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
)
ok 18 - in repo.git
expecting success of 1501.19 'inside work tree':
(
cd repo.git/work &&
test_rev_parse false true true ""
)
'actual.prefix' is not empty, it contains:
ok 19 - inside work tree
expecting success of 1501.20 'subdir of work tree':
(
cd repo.git/work/sub/dir &&
test_rev_parse false true true sub/dir/
)
ok 20 - subdir of work tree
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
ok 21 - find work tree from repo
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
ok 22 - find work tree from work tree
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 &&
git diff --exit-code tracked &&
echo changed >tracked &&
test_must_fail git diff --exit-code tracked
)
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 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
(
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
ok 24 - diff-index respects work tree under .git dir
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
(
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
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
(
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 26 - git diff respects work tree under .git dir
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
ok 27 - git grep
expecting success of 1501.28 'git commit':
(
cd repo.git &&
GIT_DIR=. GIT_WORK_TREE=work git commit -a -m done
)
[master (root-commit) 271ed29] done
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 sub/dir/tracked
ok 28 - git commit
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
)
fatal: /home: '/home' is outside repository at '/<<PKGBUILDDIR>>/t/trash directory.t1501-work-tree/repo.git/work'
ok 29 - absolute pathspec should fail gracefully
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
git --git-dir=/<<PKGBUILDDIR>>/t/trash directory.t1501-work-tree//repo.git --work-tree=/<<PKGBUILDDIR>>/t/trash directory.t1501-work-tree add dummy_file
ok 30 - make_relative_path handles double slashes in GIT_DIR
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
ok 31 - relative $GIT_WORK_TREE and git subprocesses
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
cp: cannot stat 'repo.git/sharedindex.*': No such file or directory
ok 32 - Multi-worktree setup
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
)
ok 33 - GIT_DIR set (1)
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 &&
test_cmp expect actual
)
ok 34 - GIT_DIR set (2)
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
)
ok 35 - Auto discovery
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
)
ok 36 - $GIT_DIR/common overrides core.worktree
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 &&
test_cmp expect actual
)
ok 37 - $GIT_WORK_TREE overrides $GIT_DIR/common
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
)
fatal: Invalid path '/.invalid': No such file or directory
ok 38 - error out gracefully on invalid $GIT_WORK_TREE
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 &&
GIT_DIR=relative/.git GIT_WORK_TREE=relative git reset HEAD^ &&
git -C relative log -1 --format=%s >actual &&
echo one >expect &&
test_cmp expect actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1501-work-tree/relative/.git/
[master (root-commit) 61ba98b] one
Author: A U Thor <author@example.com>
[master 2b4e70d] two
Author: A U Thor <author@example.com>
ok 39 - refs work with relative gitdir and work tree
# passed all 39 test(s)
1..39
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1503-rev-parse-verify.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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)
ok 1 - set up basic repo with 1 file (hello) and 4 commits
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_main=$(git rev-parse --verify main) &&
test "$rev_main" = "$HASH4" &&
rev_head=$(git rev-parse --verify HEAD) &&
test "$rev_head" = "$HASH4"
ok 2 - works with one good rev
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
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 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
ok 4 - fails silently when using -q
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@{1} &&
test_must_fail git rev-parse -q --verify refs/test@{1} >error 2>&1 &&
test_must_be_empty error
ok 5 - fails silently when using -q with deleted reflogs
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
ok 6 - fails silently when using -q with not enough reflogs
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 7 - succeeds silently with -q and reflogs that do not go far back enough in time
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)"
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 1503.9 'use --default':
git rev-parse --verify --default main &&
git rev-parse --verify --default main HEAD &&
git rev-parse --default main --verify &&
git rev-parse --default main --verify HEAD &&
git rev-parse --verify HEAD --default main &&
test_must_fail git rev-parse --verify foo --default main &&
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
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 1503.10 'main@{n} for various n':
git reflog >out &&
N=$(wc -l <out) &&
Nm1=$(($N-1)) &&
Np1=$(($N+1)) &&
git rev-parse --verify main@{0} &&
git rev-parse --verify main@{1} &&
git rev-parse --verify main@{$Nm1} &&
test_must_fail git rev-parse --verify main@{$N} &&
test_must_fail git rev-parse --verify main@{$Np1}
32a594a3fdac2d57cf6d02987e30eec68511498c
3de952f2416b6084f557ec417709eac740c6818c
88bcdc1839f0ad191ffdd65cae2a2a862d682151
fatal: log for 'main' only has 4 entries
fatal: log for 'main' only has 4 entries
ok 10 - main@{n} for various n
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 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
fatal: Needed a single revision
ok 11 - ref resolution not confused by broken symlinks
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
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
ok 13 - verify respects --end-of-options
# passed all 13 test(s)
1..13
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1504-ceiling-dirs.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 1504.2 'ceil_empty': test '' = "$(git rev-parse --show-prefix)"
ok 2 - ceil_empty
expecting success of 1504.3 'ceil_at_parent': test '' = "$(git rev-parse --show-prefix)"
ok 3 - ceil_at_parent
expecting success of 1504.4 'ceil_at_parent_slash': test '' = "$(git rev-parse --show-prefix)"
ok 4 - ceil_at_parent_slash
expecting success of 1504.5 'ceil_at_trash': test '' = "$(git rev-parse --show-prefix)"
ok 5 - ceil_at_trash
expecting success of 1504.6 'ceil_at_trash_slash': test '' = "$(git rev-parse --show-prefix)"
ok 6 - ceil_at_trash_slash
expecting success of 1504.7 'ceil_at_sub': test '' = "$(git rev-parse --show-prefix)"
ok 7 - ceil_at_sub
expecting success of 1504.8 'ceil_at_sub_slash': test '' = "$(git rev-parse --show-prefix)"
ok 8 - ceil_at_sub_slash
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 1504.9 'subdir_no_ceil': test 'sub/dir/' = "$(git rev-parse --show-prefix)"
ok 9 - subdir_no_ceil
expecting success of 1504.10 'subdir_ceil_empty': test 'sub/dir/' = "$(git rev-parse --show-prefix)"
ok 10 - subdir_ceil_empty
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
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 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
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 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
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 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 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 1504.19 'subdir_ceil_at_subdir': test 'sub/dir/' = "$(git rev-parse --show-prefix)"
ok 19 - subdir_ceil_at_subdir
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 1504.21 'subdir_ceil_at_su': test 'sub/dir/' = "$(git rev-parse --show-prefix)"
ok 21 - subdir_ceil_at_su
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 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 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 1504.25 'subdir_ceil_at_subdi': test 'sub/dir/' = "$(git rev-parse --show-prefix)"
ok 25 - subdir_ceil_at_subdi
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 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
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 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
expecting success of 1504.30 'git_dir_specified': test '' = "$(git rev-parse --show-prefix)"
ok 30 - git_dir_specified
expecting success of 1504.31 'sd_no_ceil': test 's/d/' = "$(git rev-parse --show-prefix)"
ok 31 - sd_no_ceil
expecting success of 1504.32 'sd_ceil_empty': test 's/d/' = "$(git rev-parse --show-prefix)"
ok 32 - sd_ceil_empty
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
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 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
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 1504.37 'sd_ceil_at_sd': test 's/d/' = "$(git rev-parse --show-prefix)"
ok 37 - sd_ceil_at_sd
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 1504.39 'sd_ceil_at_su': test 's/d/' = "$(git rev-parse --show-prefix)"
ok 39 - sd_ceil_at_su
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 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 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 1504.43 'sd_ceil_at_sdi': test 's/d/' = "$(git rev-parse --show-prefix)"
ok 43 - sd_ceil_at_sdi
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
# passed all 44 test(s)
1..44
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1505-rev-parse-last.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1505-rev-parse-last/.git/
expecting success of 1505.1 'setup':
make_commit 1 &&
git branch side &&
make_commit 2 &&
make_commit 3 &&
git checkout side &&
make_commit 4 &&
git merge main &&
git checkout main
[main (root-commit) c11cd10] 1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 1
[main ba98451] 2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 2
[main aefd701] 3
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 3
Switched to branch 'side'
[side 1d4df77] 4
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 4
Merge made by the 'ort' strategy.
2 | 1 +
3 | 1 +
2 files changed, 2 insertions(+)
create mode 100644 2
create mode 100644 3
Switched to branch 'main'
ok 1 - setup
expecting success of 1505.2 '@{-1} works':
test_cmp_rev side @{-1}
ok 2 - @{-1} works
expecting success of 1505.3 '@{-1}~2 works':
test_cmp_rev side~2 @{-1}~2
ok 3 - @{-1}~2 works
expecting success of 1505.4 '@{-1}^2 works':
test_cmp_rev side^2 @{-1}^2
ok 4 - @{-1}^2 works
expecting success of 1505.5 '@{-1}@{1} works':
test_cmp_rev side@{1} @{-1}@{1}
ok 5 - @{-1}@{1} works
expecting success of 1505.6 '@{-2} works':
test_cmp_rev main @{-2}
ok 6 - @{-2} works
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 <command> [<revision>...] -- [<file>...]'
@{-3}
ok 7 - @{-3} fails
# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1506-rev-parse-diagnosis.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
[main (root-commit) 724c7fc] init
Author: A U Thor <author@example.com>
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 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) )
f719efd430d52bcfc8566a43b2eb655688d38871
8510665149157c2bc901848c3e0b746954e9cbd9
2bdf67abb163a4ffb2d7f3f0880c9fe5068ce782
ok 2 - correct file objects
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
ok 3 - correct relative file objects (0)
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
ok 4 - correct relative file objects (1)
expecting success of 1506.5 'correct relative file objects (2)':
(
cd subdir &&
git rev-parse HEAD:../file.txt >result &&
test_cmp ../expected result
)
ok 5 - correct relative file objects (2)
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 6 - correct relative file objects (3)
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 7 - correct relative file objects (4)
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
)
ok 8 - correct relative file objects (5)
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 9 - correct relative file objects (6)
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
foobar:file.txt
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 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 )
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 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
: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 1506.13 'invalid @{n} reference':
test_must_fail git rev-parse main@{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 main@{99999} >output 2>error &&
test_must_be_empty output &&
test_i18ngrep "log for [^ ]* only has [0-9][0-9]* entries" error
fatal: log for 'main' only has 1 entries
fatal: log for 'main' only has 1 entries
ok 13 - invalid @{n} reference
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
)
HEAD:./nonexistent.txt
fatal: path 'subdir/nonexistent.txt' does not exist in 'HEAD'
ok 14 - relative path not found
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
fatal: '../file.txt' is outside repository at '/<<PKGBUILDDIR>>/t/trash directory.t1506-rev-parse-diagnosis'
ok 15 - relative path outside worktree
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
fatal: relative path syntax can't be used outside working tree
ok 16 - relative path when cwd is outside worktree
expecting success of 1506.17 '<commit>: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
fatal: HEAD:file.txt: no such path in the working tree.
ok 17 - <commit>:file correctly diagnosed after a pathname
expecting success of 1506.18 'dotdot is not an empty set':
( H=$(git rev-parse HEAD) && echo $H && echo ^$H ) >expect &&
git rev-parse HEAD.. >actual &&
test_cmp expect actual &&
git rev-parse ..HEAD >actual &&
test_cmp expect actual &&
echo .. >expect &&
git rev-parse .. >actual &&
test_cmp expect actual
ok 18 - dotdot is not an empty set
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 &&
git rev-parse annotated..annotated >actual-with-two-dots &&
test_cmp expect-with-two-dots actual-with-two-dots &&
git rev-parse annotated...annotated >actual-with-merge-base &&
test_cmp expect-with-merge-base actual-with-merge-base
ok 19 - dotdot does not peel endpoints
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
fatal: bad revision 'foobar'
ok 20 - arg before dashdash must be a revision (missing)
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
fatal: bad revision 'foobar'
ok 21 - arg before dashdash must be a revision (file)
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
ok 22 - arg before dashdash must be a revision (ambiguous)
expecting success of 1506.23 'reject Nth parent if N is too high':
test_must_fail git rev-parse HEAD^100000000000000000000000000000000
fatal: ambiguous argument 'HEAD^100000000000000000000000000000000': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
HEAD^100000000000000000000000000000000
ok 23 - reject Nth parent if N is too high
expecting success of 1506.24 'reject Nth ancestor if N is too high':
test_must_fail git rev-parse HEAD~100000000000000000000000000000000
fatal: ambiguous argument 'HEAD~100000000000000000000000000000000': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
HEAD~100000000000000000000000000000000
ok 24 - reject Nth ancestor if N is too high
expecting success of 1506.25 'pathspecs with wildcards are not ambiguous':
echo "*.c" >expect &&
git rev-parse "*.c" >actual &&
test_cmp expect actual
ok 25 - pathspecs with wildcards are not ambiguous
expecting success of 1506.26 'backslash does not trigger wildcard rule':
test_must_fail git rev-parse "foo\\bar"
fatal: ambiguous argument 'foo\bar': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
foo\bar
ok 26 - backslash does not trigger wildcard rule
expecting success of 1506.27 'escaped char does not trigger wildcard rule':
test_must_fail git rev-parse "foo\\*bar"
fatal: ambiguous argument 'foo\*bar': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
foo\*bar
ok 27 - escaped char does not trigger wildcard rule
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
ok 28 - arg after dashdash not interpreted as option
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
--end-of-options
fatal: bad revision '--not-real'
ok 29 - arg after end-of-options not interpreted as option
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
ok 30 - end-of-options still allows --
# passed all 30 test(s)
1..30
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1508-at-combinations.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1508-at-combinations/.git/
expecting success of 1508.1 'setup':
test_commit main-one &&
test_commit main-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 main old-branch &&
git branch -u upstream-branch new-branch
[main (root-commit) 1b49f74] main-one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 main-one.t
[main 6d5691d] main-two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 main-two.t
Switched to a new branch 'upstream-branch'
[upstream-branch 6d93ee3] upstream-one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 upstream-one.t
[upstream-branch 2bb3c5b] upstream-two
Author: A U Thor <author@example.com>
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 a935743] old-one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 old-one.t
[old-branch 2c577ae] old-two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 old-two.t
Switched to a new branch 'new-branch'
[new-branch d3599bb] new-one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 new-one.t
[new-branch 8a88a27] new-two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 new-two.t
branch 'old-branch' set up to track 'main'.
branch 'new-branch' set up to track 'upstream-branch'.
ok 1 - setup
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
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 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
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 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
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 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
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 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
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 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
expecting success of 1508.13 '@{-1}@{u} = refs/heads/main':
echo 'refs/heads/main' >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/main
expecting success of 1508.14 '@{-1}@{u}@{1} = main-one':
echo 'main-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} = main-one
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 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
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 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
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 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
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 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
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 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
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 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
expecting success of 1508.27 'switch to old-branch':
git checkout old-branch
Switched to branch 'old-branch'
Your branch is ahead of 'main' by 4 commits.
(use "git push" to publish your local commits)
ok 27 - switch to old-branch
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 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
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 1508.31 'create path with @':
echo content >normal &&
echo content >fun@ny &&
git add normal fun@ny &&
git commit -m "funny path"
[old-branch 7240585] funny path
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 fun@ny
create mode 100644 normal
ok 31 - create path with @
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
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 1508.34 '@{1} works with only one reflog entry':
git checkout -B newbranch main &&
git reflog expire --expire=now refs/heads/newbranch &&
git commit --allow-empty -m "first after expiration" &&
test_cmp_rev newbranch~ newbranch@{1}
Switched to a new branch 'newbranch'
[newbranch b4bdce6] first after expiration
Author: A U Thor <author@example.com>
ok 34 - @{1} works with only one reflog entry
expecting success of 1508.35 '@{0} works with empty reflog':
git checkout -B newbranch main &&
git reflog expire --expire=now refs/heads/newbranch &&
test_cmp_rev newbranch newbranch@{0}
Reset branch 'newbranch'
ok 35 - @{0} works with empty reflog
# passed all 35 test(s)
1..35
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1507-rev-parse-upstream.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 main &&
git clone . clone &&
test_commit 3 &&
(cd clone &&
test_commit 4 &&
git branch --track my-side origin/side &&
git branch --track local-main main &&
git branch --track fun@ny origin/side &&
git branch --track @funny origin/side &&
git branch --track funny@ origin/side &&
git remote add -t main main-only .. &&
git fetch main-only &&
git branch bad-upstream &&
git config branch.bad-upstream.remote main-only &&
git config branch.bad-upstream.merge refs/heads/side
)
[main (root-commit) d0dcf97] 1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 1.t
Switched to a new branch 'side'
[side 82335b2] 2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 2.t
Switched to branch 'main'
Cloning into 'clone'...
done.
[main 8f489d0] 3
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 3.t
[main 6efda21] 4
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 4.t
branch 'my-side' set up to track 'origin/side'.
branch 'local-main' set up to track 'main'.
branch 'fun@ny' set up to track 'origin/side'.
branch '@funny' set up to track 'origin/side'.
branch 'funny@' set up to track 'origin/side'.
From ..
* [new branch] main -> main-only/main
* [new tag] 3 -> 3
ok 1 - setup
expecting success of 1507.2 '@{upstream} resolves to correct full name':
echo refs/remotes/origin/main >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 2 - @{upstream} resolves to correct full name
expecting success of 1507.3 '@{u} resolves to correct full name':
echo refs/remotes/origin/main >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 3 - @{u} resolves to correct full name
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 4 - my-side@{upstream} resolves to correct full name
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 <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 5.t
From /<<PKGBUILDDIR>>/t/trash directory.t1507-rev-parse-upstream/.
d0dcf97..8f489d0 main -> origin/main
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 '<branch>@{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 <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 6.t
From /<<PKGBUILDDIR>>/t/trash directory.t1507-rev-parse-upstream/.
e3f9627..8bf5882 side -> origin/side
* [new tag] 6 -> 6
ok 11 - <branch>@{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 <new-branch-name>
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 'origin/side'.
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 main &&
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 'main'
Your branch and 'origin/main' 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 'origin/side'.
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 main &&
git branch -d @{u} &&
git for-each-ref refs/heads/main >actual &&
test_must_be_empty actual
Previous HEAD position was 8bf5882 6
Switched to a new branch 'other'
branch 'other' set up to track 'main'.
Deleted branch main (was 8f489d0).
ok 15 - branch -d other@{u}
expecting success of 1507.16 'checkout other@{u}':
git branch -f main HEAD &&
git checkout -t -b another main &&
git checkout @{u} &&
git symbolic-ref HEAD >actual &&
echo refs/heads/main >expect &&
test_cmp expect actual
Switched to a new branch 'another'
branch 'another' set up to track 'main'.
Switched to branch 'main'
ok 16 - checkout other@{u}
expecting success of 1507.17 'branch@{u} works when tracking a local branch':
echo refs/heads/main >expect &&
git -C clone rev-parse --symbolic-full-name local-main@{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_cmp expect error
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}main${SQ}
EOF
test_must_fail git rev-parse --verify @{u} 2>actual &&
test_cmp 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_cmp 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_cmp 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 <new-branch-name>
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_cmp 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-main &&
git pull
)
Switched to branch 'local-main'
Your branch is behind 'main' by 4 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
From .
* branch main -> 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/main >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: main@{0} (C O Mitter <committer@example.com>)
Reflog message: branch: Created from HEAD
Author: A U Thor <author@example.com>
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: main@{Thu Apr 7 15:17:13 2005 -0700} (C O Mitter <committer@example.com>)
Reflog message: branch: Created from HEAD
Author: A U Thor <author@example.com>
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 <author@example.com>
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 <author@example.com>
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1509-root-work-tree.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1511-rev-parse-caret.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 main &&
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
[main (root-commit) 543146a] Initial
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 a-blob
create mode 100644 a-tree/another-blob
Already on 'main'
[main 921b76a] Modified
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[main e6ae3e8] !Exp
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[main ee9e0b8] Changed
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
[main 8f5adaa] Changed-again
Author: A U Thor <author@example.com>
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 <command> [<revision>...] -- [<file>...]'
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 <command> [<revision>...] -- [<file>...]'
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 <command> [<revision>...] -- [<file>...]'
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 <command> [<revision>...] -- [<file>...]'
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 <command> [<revision>...] -- [<file>...]'
HEAD^{tag}
ok 6 - ref^{tag}
expecting success of 1511.7 'ref^{/.}':
git rev-parse main >expected &&
git rev-parse main^{/.} >actual &&
test_cmp expected actual
ok 7 - ref^{/.}
expecting success of 1511.8 'ref^{/non-existent}':
test_must_fail git rev-parse main^{/non-existent}
fatal: ambiguous argument 'main^{/non-existent}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
main^{/non-existent}
ok 8 - ref^{/non-existent}
expecting success of 1511.9 'ref^{/Initial}':
git rev-parse ref >expected &&
git rev-parse main^{/Initial} >actual &&
test_cmp expected actual
ok 9 - ref^{/Initial}
expecting success of 1511.10 'ref^{/!Exp}':
test_must_fail git rev-parse main^{/!Exp}
fatal: ambiguous argument 'main^{/!Exp}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
main^{/!Exp}
ok 10 - ref^{/!Exp}
expecting success of 1511.11 'ref^{/!}':
test_must_fail git rev-parse main^{/!}
fatal: ambiguous argument 'main^{/!}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
main^{/!}
ok 11 - ref^{/!}
expecting success of 1511.12 'ref^{/!!Exp}':
git rev-parse expref >expected &&
git rev-parse main^{/!!Exp} >actual &&
test_cmp expected actual
ok 12 - ref^{/!!Exp}
expecting success of 1511.13 'ref^{/!-}':
test_must_fail git rev-parse main^{/!-}
fatal: ambiguous argument 'main^{/!-}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
main^{/!-}
ok 13 - ref^{/!-}
expecting success of 1511.14 'ref^{/!-.}':
test_must_fail git rev-parse main^{/!-.}
fatal: ambiguous argument 'main^{/!-.}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
main^{/!-.}
ok 14 - ref^{/!-.}
expecting success of 1511.15 'ref^{/!-non-existent}':
git rev-parse main >expected &&
git rev-parse main^{/!-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 main^{/!-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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1512-rev-parse-disambiguation.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1512-rev-parse-disambiguation/.git/
expecting success of 1512.1 'ambiguous blob output':
git init --bare blob.prefix &&
(
cd blob.prefix &&
# Both start with "dead..", under both SHA-1 and SHA-256
echo brocdnra | git hash-object -w --stdin &&
echo brigddsv | git hash-object -w --stdin &&
# Both start with "beef.."
echo 1agllotbh | git hash-object -w --stdin &&
echo 1bbfctrkc | git hash-object -w --stdin
) &&
test_must_fail git -C blob.prefix rev-parse dead &&
test_cmp_failed_rev_parse blob.prefix beef <<-\EOF
error: short object ID beef... is ambiguous
hint: The candidates are:
hint: beef... blob
hint: beef... blob
fatal: ambiguous argument 'beef...': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
EOF
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1512-rev-parse-disambiguation/blob.prefix/
dead7b21a85f6dc7a24cbc4bb04a008db70bc04a
dead9d36640e108d9eb449ed5966fd0c6d4e6b7f
beefc9be42a87abd92326257a995bf20a24c788f
beef2b0b99a5a8a36d91ea9ecd766af6352eafd9
error: short object ID dead is ambiguous
hint: The candidates are:
hint: dead7b2 blob
hint: dead9d3 blob
fatal: ambiguous argument 'dead': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
dead
beef
ok 1 - ambiguous blob output
expecting success of 1512.2 'ambiguous loose bad object parsed as OBJ_BAD':
git init --bare blob.bad &&
(
cd blob.bad &&
# Both have the prefix "bad0"
echo xyzfaowcoh | git hash-object -t bad -w --stdin --literally &&
echo xyzhjpyvwl | git hash-object -t bad -w --stdin --literally
) &&
test_cmp_failed_rev_parse blob.bad bad0 <<-\EOF
error: short object ID bad0... is ambiguous
fatal: invalid object type
EOF
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1512-rev-parse-disambiguation/blob.bad/
bad0bd4672dee1b4d3b8088534ed5a0362bc8d59
bad0853730d9d114ac789f0ce89039d224bf66c9
ok 2 - ambiguous loose bad object parsed as OBJ_BAD
expecting success of 1512.3 'ambigous zlib corrupt loose blob':
git init --bare blob.corrupt &&
(
cd blob.corrupt &&
# Both have the prefix "cafe"
echo bnkxmdwz | git hash-object -w --stdin &&
oid=$(echo bmwsjxzi | git hash-object -w --stdin) &&
oidf=objects/$(test_oid_to_path "$oid") &&
chmod 755 $oidf &&
echo broken >$oidf
) &&
test_cmp_failed_rev_parse blob.corrupt cafe <<-\EOF
error: short object ID cafe... is ambiguous
error: inflate: data stream error (incorrect header check)
error: unable to unpack cafe... header
error: inflate: data stream error (incorrect header check)
error: unable to unpack cafe... header
hint: The candidates are:
hint: cafe... [bad object]
hint: cafe... blob
fatal: ambiguous argument 'cafe...': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
EOF
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1512-rev-parse-disambiguation/blob.corrupt/
cafe3f2e27174acdf9aa3a394d73714cdcf533d9
cafe
ok 3 - ambigous zlib corrupt loose blob
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.4 'blob and tree':
test_tick &&
(
test_write_lines 0 1 2 3 4 5 6 7 8 9 &&
echo &&
echo b1rwzyc3
) >a0blgqsjc &&
# create one blob 0000000000b36
git add a0blgqsjc &&
# create one tree 0000000000cdc
git write-tree
0000000000cdcf04beb2fab69e65622616294984
ok 4 - blob and tree
expecting success of 1512.5 'warn ambiguity when no candidate matches type hint':
test_must_fail git rev-parse --verify 000000000^{commit} 2>actual &&
test_i18ngrep "short object ID 000000000 is ambiguous" actual
error: short object ID 000000000 is ambiguous
ok 5 - warn ambiguity when no candidate matches type hint
expecting success of 1512.6 '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 6 - disambiguate tree-ish
expecting success of 1512.7 '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 7 - disambiguate blob
expecting success of 1512.8 '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 8 - disambiguate tree
expecting success of 1512.9 'first commit':
# create one commit 0000000000e4f
git commit -m a2onsxbvj
[main (root-commit) 0000000000e] a2onsxbvj
Author: A U Thor <author@example.com>
1 file changed, 12 insertions(+)
create mode 100644 a0blgqsjc
ok 9 - first commit
expecting success of 1512.10 '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 10 - disambiguate commit-ish
expecting success of 1512.11 '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 11 - disambiguate commit
expecting success of 1512.12 '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 12 - log name1..name2 takes only commit-ishes on both ends
expecting success of 1512.13 '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 13 - rev-parse name1..name2 takes only commit-ishes on both ends
expecting success of 1512.14 'git log takes only commit-ish':
# Likewise.
git log 000000000
commit 0000000000e4f9fbd19cf1e932319e5ad0d1d00b
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:13:13 2005 -0700
a2onsxbvj
ok 14 - git log takes only commit-ish
expecting success of 1512.15 'git reset takes only commit-ish':
# Likewise.
git reset 000000000
ok 15 - git reset takes only commit-ish
expecting success of 1512.16 'first tag':
# create one tag 0000000000f8f
git tag -a -m j7cp83um v1.0.0
ok 16 - first tag
checking known breakage of 1512.17 '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 object ID 0000000000 is ambiguous
hint: The candidates are:
hint: 0000000000f tag 2005-04-07 - v1.0.0
hint: 0000000000e commit 2005-04-07 - a2onsxbvj
fatal: Needed a single revision
not ok 17 - two semi-ambiguous commit-ish # TODO known breakage
checking known breakage of 1512.18 '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 object ID 0000000000 is ambiguous
hint: The candidates are:
hint: 0000000000f tag 2005-04-07 - v1.0.0
hint: 0000000000e commit 2005-04-07 - a2onsxbvj
hint: 0000000000c tree
fatal: Needed a single revision
not ok 18 - three semi-ambiguous tree-ish # TODO known breakage
expecting success of 1512.19 '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 19 - parse describe name
expecting success of 1512.20 '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 &&
test_write_lines h62xsjeu j08bekfvt kg7xflhm >>f5518nwu &&
git add f5518nwu &&
test_tick &&
git commit -m b3wettvi &&
side=$(git rev-parse HEAD) &&
# commit 000000000066
git checkout main &&
# 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 &&
test_might_fail git rm -f a0blgqsjc &&
(
git cat-file blob $side:f5518nwu &&
echo j3l0i9s6
) >ab2gs879 &&
git add ab2gs879 &&
test_tick &&
git commit -m ad2uee
[main 00000000000] czy8f73t
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
rename a0blgqsjc => d12cr3h8t (76%)
[main 00000000008] ioiley5o
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
rename d12cr3h8t => j000jmpzn (79%)
Note: switching to 'v1.0.0^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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 0000000000e a2onsxbvj
[detached HEAD 0000000005] b3wettvi
Author: A U Thor <author@example.com>
1 file changed, 3 insertions(+)
rename a0blgqsjc => f5518nwu (51%)
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
0000000005 b3wettvi
If you want to keep it by creating a new branch, this may be a good time
to do so with:
git branch <new-branch-name> 0000000005
Switched to branch 'main'
Auto-merging a0blgqsjc
CONFLICT (rename/rename): a0blgqsjc renamed to j000jmpzn in HEAD and to f5518nwu in 0000000005b0d85f595e1a98533157ea161798da.
Automatic merge failed; fix conflicts and then commit the result.
rm 'f5518nwu'
rm 'j000jmpzn'
rm 'a0blgqsjc'
[main 00000000006] ad2uee
Author: A U Thor <author@example.com>
ok 20 - more history
checking known breakage of 1512.21 '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 &&
# likewise for generation 2 and 4
git rev-parse --verify v1.0.0-2-g000000000 &&
git rev-parse --verify v1.0.0-4-g000000000
fatal: Needed a single revision
not ok 21 - parse describe name taking advantage of generation # TODO known breakage
expecting success of 1512.22 '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 22 - parse describe name not ignoring ambiguity
expecting success of 1512.23 '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 object ID 00000000 is ambiguous
hint: The candidates are:
hint: 0000000000f8 tag 2005-04-07 - 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 object ID 000000000 is ambiguous
hint: The candidates are:
hint: 0000000000f8 tag 2005-04-07 - 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 <command> [<revision>...] -- [<file>...]'
error: short object ID 000000000 is ambiguous
hint: The candidates are:
hint: 0000000000f8 tag 2005-04-07 - 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 <command> [<revision>...] -- [<file>...]'
error: short object ID 000000000 is ambiguous
hint: The candidates are:
hint: 0000000000f8 tag 2005-04-07 - 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 <command> [<revision>...] -- [<file>...]'
error: short object ID 000000000 is ambiguous
hint: The candidates are:
hint: 0000000000f8 tag 2005-04-07 - 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 <command> [<revision>...] -- [<file>...]'
error: short object ID 000000000 is ambiguous
hint: The candidates are:
hint: 0000000000f8 tag 2005-04-07 - 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 <command> [<revision>...] -- [<file>...]'
error: short object ID 000000000 is ambiguous
hint: The candidates are:
hint: 0000000000f8 tag 2005-04-07 - 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 <command> [<revision>...] -- [<file>...]'
ok 23 - ambiguous commit-ish
expecting success of 1512.24 'ambiguous tags peel to treeish':
test_must_fail git rev-parse 0000000000f^{tree}
error: short object ID 0000000000f is ambiguous
hint: The candidates are:
hint: 0000000000f8 tag 2005-04-07 - 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 <command> [<revision>...] -- [<file>...]'
0000000000f^{tree}
ok 24 - ambiguous tags peel to treeish
expecting success of 1512.25 '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 25 - rev-parse --disambiguate
expecting success of 1512.26 'rev-parse --disambiguate drops duplicates':
git rev-parse --disambiguate=000000000 >expect &&
git pack-objects .git/objects/pack/pack <expect &&
git rev-parse --disambiguate=000000000 >actual &&
test_cmp expect actual
bdfb78b16a1cd3c3b1ebf4cca29330c92a46fc43
ok 26 - rev-parse --disambiguate drops duplicates
expecting success of 1512.27 'ambiguous 40-hex ref':
TREE=$(git mktree </dev/null) &&
REF=$(git rev-parse HEAD) &&
VAL=$(git commit-tree $TREE </dev/null) &&
git update-ref refs/heads/$REF $VAL &&
test $(git rev-parse $REF 2>err) = $REF &&
grep "refname.*${REF}.*ambiguous" err
warning: refname '0000000000663a70a94c2b280b575855256220fa' is ambiguous.
ok 27 - ambiguous 40-hex ref
expecting success of 1512.28 'ambiguous short sha1 ref':
TREE=$(git mktree </dev/null) &&
REF=$(git rev-parse --short HEAD) &&
VAL=$(git commit-tree $TREE </dev/null) &&
git update-ref refs/heads/$REF $VAL &&
test $(git rev-parse $REF 2>err) = $VAL &&
grep "refname.*${REF}.*ambiguous" err
warning: refname '00000000006' is ambiguous.
ok 28 - ambiguous short sha1 ref
expecting success of 1512.29 '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
00000
ok 29 - ambiguity errors are not repeated (raw)
expecting success of 1512.30 '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
00000:foo
ok 30 - ambiguity errors are not repeated (treeish)
expecting success of 1512.31 '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
00000^{commit}
ok 31 - ambiguity errors are not repeated (peel)
expecting success of 1512.32 '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
000000000
ok 32 - ambiguity hints
expecting success of 1512.33 '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
000000000^{commit}
ok 33 - ambiguity hints respect type
expecting success of 1512.34 '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
ee3de9906b5e9a4a369e91cba4235487a7e10351
ee3d8abaa95a7395b373892b2593de2f426814e2
ee3d^{commit}
ok 34 - failed type-selector still shows hint
expecting success of 1512.35 '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
error: short object ID 0000000000f is ambiguous
hint: The candidates are:
hint: 0000000000f8 tag 2005-04-07 - 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 <command> [<revision>...] -- [<file>...]'
0000000000f
0000000000e4f9fbd19cf1e932319e5ad0d1d00b
0000000000f8f5507ab27a0d7bd3c75c0f64ffe0
ok 35 - core.disambiguate config can prefer types
expecting success of 1512.36 '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 object ID 0000000000f is ambiguous
hint: The candidates are:
hint: 0000000000f8 tag 2005-04-07 - 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 <command> [<revision>...] -- [<file>...]'
0000000000f^{tree}
ok 36 - core.disambiguate does not override context
expecting success of 1512.37 '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 >objects.types &&
uniq <objects.types >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 || return 1
done
0000
ok 37 - ambiguous commits are printed by type first, then hash order
expecting success of 1512.38 '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
hint: The candidates are:
hint: 0000000000f8 tag 2005-04-07 - 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 2005-04-07 - 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 38 - cat-file --batch and --batch-check show ambiguous
# still have 3 known breakage(s)
# passed all remaining 35 test(s)
1..38
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1513-rev-parse-prefix.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
[main (root-commit) 2a70803] commit
Author: A U Thor <author@example.com>
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/ main file1 >actual &&
cat <<-EOF >expected &&
$(git rev-parse main)
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1514-rev-parse-push.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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/main main &&
git branch --track topic origin/main &&
git push origin topic &&
git push other topic
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1514-rev-parse-push/parent.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1514-rev-parse-push/other.git/
[main (root-commit) d1ff1c9] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 base.t
To parent.git
* [new branch] HEAD -> main
branch 'main' set up to track 'origin/main'.
branch 'topic' set up to track 'origin/main'.
To parent.git
* [new branch] topic -> topic
To other.git
* [new branch] topic -> topic
ok 1 - setup
expecting success of 1514.2 '@{push} with default=nothing':
test_config push.default nothing &&
test_must_fail git rev-parse main@{push} &&
test_must_fail git rev-parse main@{PUSH} &&
test_must_fail git rev-parse main@{PuSH}
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 1514.3 '@{push} with default=simple':
test_config push.default simple &&
resolve main@{push} refs/remotes/origin/main &&
resolve main@{PUSH} refs/remotes/origin/main &&
resolve main@{pUSh} refs/remotes/origin/main
ok 3 - @{push} with default=simple
expecting success of 1514.4 'triangular @{push} fails with default=simple':
test_config push.default simple &&
test_must_fail git rev-parse topic@{push}
fatal: cannot resolve 'simple' push to a single destination
ok 4 - triangular @{push} fails with default=simple
expecting success of 1514.5 '@{push} with default=current':
test_config push.default current &&
resolve topic@{push} refs/remotes/origin/topic
ok 5 - @{push} with default=current
expecting success of 1514.6 '@{push} with default=matching':
test_config push.default matching &&
resolve topic@{push} refs/remotes/origin/topic
ok 6 - @{push} with default=matching
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
ok 7 - @{push} with pushremote defined
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
To parent.git
* [new branch] main -> magic/main
* [new branch] topic -> magic/topic
ok 8 - @{push} with push refspecs
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}
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at d1ff1c9 base
fatal: HEAD does not point to a branch
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
ok 9 - resolving @{push} fails with a detached HEAD
# passed all 9 test(s)
1..9
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1515-rev-parse-outside-repo.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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: not a git repository (or any of the parent directories): .git
ok 1 - set up non-repo directory
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 2 - rev-parse --sq-quote
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
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
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1600-index.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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>err &&
sed "s/[0-9]//" err >actual.err &&
sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
warning: GIT_INDEX_VERSION set, but the value is invalid.
Using version Z
EOF
test_cmp expect.err actual.err
)
ok 2 - bogus GIT_INDEX_VERSION issues warning
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>err &&
sed "s/[0-9]//" err >actual.err &&
sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
warning: GIT_INDEX_VERSION set, but the value is invalid.
Using version Z
EOF
test_cmp expect.err actual.err
)
ok 3 - out of bounds GIT_INDEX_VERSION issues warning
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
)
ok 4 - no warning with bogus GIT_INDEX_VERSION and existing index
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>err &&
sed "s/[0-9]//" err >actual.err &&
sed -e "s/ Z$/ /" <<-\EOF >expect.err &&
warning: index.version set, but the value is invalid.
Using version Z
EOF
test_cmp expect.err actual.err
)
ok 5 - out of bounds index.version issues warning
expecting success of 1600.6 'index.skipHash config option':
rm -f .git/index &&
git -c index.skipHash=true add a &&
test_trailing_hash .git/index >hash &&
echo $(test_oid zero) >expect &&
test_cmp expect hash &&
git fsck &&
rm -f .git/index &&
git -c feature.manyFiles=true add a &&
test_trailing_hash .git/index >hash &&
cmp expect hash &&
rm -f .git/index &&
git -c feature.manyFiles=true \
-c index.skipHash=false add a &&
test_trailing_hash .git/index >hash &&
! cmp expect hash &&
test_commit start &&
git -c protocol.file.allow=always submodule add ./ sub &&
git config index.skipHash false &&
git -C sub config index.skipHash true &&
rm -f .git/modules/sub/index &&
>sub/file &&
git -C sub add a &&
test_trailing_hash .git/modules/sub/index >hash &&
test_cmp expect hash &&
git -C sub fsck
warning: index.version set, but the value is invalid.
Using version 3
notice: HEAD points to an unborn branch (master)
notice: No default references
warning: index.version set, but the value is invalid.
Using version 3
warning: index.version set, but the value is invalid.
Using version 3
expect hash differ: char 1, line 1
[master (root-commit) 6d6aa2c] start
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 a
create mode 100644 start.t
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t1600-index/sub'...
done.
ok 6 - index.skipHash config option
expecting success of 1600.7 '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
ok 7 - index version config precedence
# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1450-fsck.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
[master (root-commit) 1347563] A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 fileA
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 1347563 A
[detached HEAD c9145d6] B
Author: A U Thor <author@example.com>
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 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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/another/.git/
[master (root-commit) 1aac250] C
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 fileC
ok 2 - loose objects borrowed from alternate are not missing
expecting success of 1450.3 'HEAD is part of refs, valid objects appear valid':
git fsck >actual 2>&1 &&
test_must_be_empty actual
ok 3 - HEAD is part of refs, valid objects appear valid
expecting success of 1450.4 'object with hash mismatch':
git init --bare hash-mismatch &&
(
cd hash-mismatch &&
oid=$(echo blob | git hash-object -w --stdin) &&
oldoid=$oid &&
old=$(test_oid_to_path "$oid") &&
new=$(dirname $old)/$(test_oid ff_2) &&
oid="$(dirname $new)$(basename $new)" &&
mv objects/$old objects/$new &&
git update-index --add --cacheinfo 100644 $oid foo &&
tree=$(git write-tree) &&
cmt=$(echo bogus | git commit-tree $tree) &&
git update-ref refs/heads/bogus $cmt &&
test_must_fail git fsck 2>out &&
grep "$oldoid: hash-path mismatch, found at: .*$new" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/hash-mismatch/
missing blob 63ffffffffffffffffffffffffffffffffffffff
error: 63499e4ea8e096b831515ceb1d5a7593e4d87ae5: hash-path mismatch, found at: ./objects/63/ffffffffffffffffffffffffffffffffffffff
ok 4 - object with hash mismatch
expecting success of 1450.5 'object with hash and type mismatch':
git init --bare hash-type-mismatch &&
(
cd hash-type-mismatch &&
oid=$(echo blob | git hash-object -w --stdin -t garbage --literally) &&
oldoid=$oid &&
old=$(test_oid_to_path "$oid") &&
new=$(dirname $old)/$(test_oid ff_2) &&
oid="$(dirname $new)$(basename $new)" &&
mv objects/$old objects/$new &&
git update-index --add --cacheinfo 100644 $oid foo &&
tree=$(git write-tree) &&
cmt=$(echo bogus | git commit-tree $tree) &&
git update-ref refs/heads/bogus $cmt &&
test_must_fail git fsck 2>out &&
grep "^error: $oldoid: hash-path mismatch, found at: .*$new" out &&
grep "^error: $oldoid: object is of unknown type 'garbage'" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/hash-type-mismatch/
missing blob 12ffffffffffffffffffffffffffffffffffffff
error: 121824d811d9a92c73a9c42ea7ee683e758723ce: hash-path mismatch, found at: ./objects/12/ffffffffffffffffffffffffffffffffffffff
error: 121824d811d9a92c73a9c42ea7ee683e758723ce: object is of unknown type 'garbage': ./objects/12/ffffffffffffffffffffffffffffffffffffff
ok 5 - object with hash and type mismatch
expecting success of 1450.6 'zlib corrupt loose object output ':
git init --bare corrupt-loose-output &&
(
cd corrupt-loose-output &&
oid=$(git hash-object -w --stdin --literally </dev/null) &&
oidf=objects/$(test_oid_to_path "$oid") &&
chmod +w $oidf &&
echo extra garbage >>$oidf &&
cat >expect.error <<-EOF &&
error: garbage at end of loose object '$oid'
error: unable to unpack contents of ./$oidf
error: $oid: object corrupt or missing: ./$oidf
EOF
test_must_fail git fsck 2>actual &&
grep ^error: actual >error &&
test_cmp expect.error error
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/corrupt-loose-output/
ok 6 - zlib corrupt loose object output
expecting success of 1450.7 '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
error: refs/heads/invalid: not a commit
ok 7 - branch pointing to non-commit
expecting success of 1450.8 '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
dangling commit c9145d6720f85544cc4bb6009a2e541660aa156b
error: HEAD: detached HEAD points at nothing
ok 8 - HEAD link pointing at a funny object
expecting success of 1450.9 '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
dangling commit c9145d6720f85544cc4bb6009a2e541660aa156b
error: HEAD points to something strange (refs/funny/place)
ok 9 - HEAD link pointing at a funny place
expecting success of 1450.10 '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
Preparing worktree (new branch 'wt')
HEAD is now at c9145d6 B
error: main-worktree/HEAD: detached HEAD points at nothing
ok 10 - HEAD link pointing at a funny object (from different wt)
expecting success of 1450.11 '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
Preparing worktree (new branch 'other')
HEAD is now at c9145d6 B
error: worktrees/other/HEAD: detached HEAD points at nothing
ok 11 - other worktree HEAD link pointing at a funny object
expecting success of 1450.12 '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
Preparing worktree (checking out 'other')
HEAD is now at c9145d6 B
error: worktrees/other/HEAD: invalid sha1 pointer 45ea5fdbd862b3f0e413a6c2c951347efa0bb114
ok 12 - other worktree HEAD link pointing at missing object
expecting success of 1450.13 '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
Preparing worktree (checking out 'other')
HEAD is now at c9145d6 B
error: worktrees/other/HEAD points to something strange (refs/funny/place)
ok 13 - other worktree HEAD link pointing at a funny place
expecting success of 1450.14 '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 <okay) &&
test_when_finished "remove_object $new" &&
git update-ref refs/heads/bogus "$new" &&
test_when_finished "git update-ref -d refs/heads/bogus" &&
git fsck 2>out &&
cat out &&
! grep "commit $new" out
tree c9176b0dd1a95c80ad8de21784b1eeffd3681f49
parent 134756353796a5439d93586be27999eea3807a34
author A U Thor <author@example.com> 1112912053 -0700
committer C O Mitter <committer@example.com> 1112912053 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
VGhpcyBpcyBub3QgcmVhbGx5IGEgc2lnbmF0dXJlLg==
-----END PGP SIGNATURE-----
gpgsig-sha256 -----BEGIN PGP SIGNATURE-----
VGhpcyBpcyBub3QgcmVhbGx5IGEgc2lnbmF0dXJlLg==
-----END PGP SIGNATURE-----
B
ok 14 - commit with multiple signatures is okay
expecting success of 1450.15 'email without @ is okay':
git cat-file commit HEAD >basis &&
sed "s/@/AT/" basis >okay &&
new=$(git hash-object -t commit -w --stdin <okay) &&
test_when_finished "remove_object $new" &&
git update-ref refs/heads/bogus "$new" &&
test_when_finished "git update-ref -d refs/heads/bogus" &&
git fsck 2>out &&
! grep "commit $new" out
ok 15 - email without @ is okay
expecting success of 1450.16 'email with embedded > is not okay':
git cat-file commit HEAD >basis &&
sed "s/@[a-z]/&>/" basis >bad-email &&
new=$(git hash-object --literally -t commit -w --stdin <bad-email) &&
test_when_finished "remove_object $new" &&
git update-ref refs/heads/bogus "$new" &&
test_when_finished "git update-ref -d refs/heads/bogus" &&
test_must_fail git fsck 2>out &&
test_i18ngrep "error in commit $new" out
error in commit af421232fcba11d582d625f9041afbe3fccc01d9: missingSpaceBeforeDate: invalid author/committer line - missing space before date
ok 16 - email with embedded > is not okay
expecting success of 1450.17 'missing < email delimiter is reported nicely':
git cat-file commit HEAD >basis &&
sed "s/<//" basis >bad-email-2 &&
new=$(git hash-object --literally -t commit -w --stdin <bad-email-2) &&
test_when_finished "remove_object $new" &&
git update-ref refs/heads/bogus "$new" &&
test_when_finished "git update-ref -d refs/heads/bogus" &&
test_must_fail git fsck 2>out &&
test_i18ngrep "error in commit $new.* - bad name" out
error in commit c4b6d356e934be1cc10cb58c734fbcc5fa3a5285: badName: invalid author/committer line - bad name
ok 17 - missing < email delimiter is reported nicely
expecting success of 1450.18 'missing email is reported nicely':
git cat-file commit HEAD >basis &&
sed "s/[a-z]* <[^>]*>//" basis >bad-email-3 &&
new=$(git hash-object --literally -t commit -w --stdin <bad-email-3) &&
test_when_finished "remove_object $new" &&
git update-ref refs/heads/bogus "$new" &&
test_when_finished "git update-ref -d refs/heads/bogus" &&
test_must_fail git fsck 2>out &&
test_i18ngrep "error in commit $new.* - missing email" out
error in commit 35319efb0a67194811f8583362d460866d58b499: missingEmail: invalid author/committer line - missing email
ok 18 - missing email is reported nicely
expecting success of 1450.19 '> in name is reported':
git cat-file commit HEAD >basis &&
sed "s/ </> </" basis >bad-email-4 &&
new=$(git hash-object --literally -t commit -w --stdin <bad-email-4) &&
test_when_finished "remove_object $new" &&
git update-ref refs/heads/bogus "$new" &&
test_when_finished "git update-ref -d refs/heads/bogus" &&
test_must_fail git fsck 2>out &&
test_i18ngrep "error in commit $new" out
error in commit 301380051321b3e224015eea93b0ebc550c88198: badName: invalid author/committer line - bad name
ok 19 - > in name is reported
expecting success of 1450.20 'integer overflow in timestamps is reported':
git cat-file commit HEAD >basis &&
sed "s/^\\(author .*>\\) [0-9]*/\\1 18446744073709551617/" \
<basis >bad-timestamp &&
new=$(git hash-object --literally -t commit -w --stdin <bad-timestamp) &&
test_when_finished "remove_object $new" &&
git update-ref refs/heads/bogus "$new" &&
test_when_finished "git update-ref -d refs/heads/bogus" &&
test_must_fail git fsck 2>out &&
test_i18ngrep "error in commit $new.*integer overflow" out
error in commit c8453435c3587d0404f88f925c28a5944b73be1a: badDateOverflow: invalid author/committer line - date causes integer overflow
ok 20 - integer overflow in timestamps is reported
expecting success of 1450.21 'commit with NUL in header':
git cat-file commit HEAD >basis &&
sed "s/author ./author Q/" <basis | q_to_nul >commit-NUL-header &&
new=$(git hash-object --literally -t commit -w --stdin <commit-NUL-header) &&
test_when_finished "remove_object $new" &&
git update-ref refs/heads/bogus "$new" &&
test_when_finished "git update-ref -d refs/heads/bogus" &&
test_must_fail git fsck 2>out &&
test_i18ngrep "error in commit $new.*unterminated header: NUL at offset" out
error in commit b70520fa0e6346c648b4013350096f65f49946eb: nulInHeader: unterminated header: NUL at offset 101
ok 21 - commit with NUL in header
expecting success of 1450.22 '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 --literally -w -t tree --stdin
) &&
test_must_fail git fsck 2>out &&
test_i18ngrep "error in tree .*contains duplicate file entries" out
dangling tree 5805b676e247eb9a8046ad0c4d249cd2fb2513df
dangling tree 7997631de77b8a212b5c3e01eff5e9cf1d3c7580
error in tree 7997631de77b8a212b5c3e01eff5e9cf1d3c7580: duplicateEntries: contains duplicate file entries
ok 22 - tree object with duplicate entries
expecting success of 1450.23 '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 <tree) &&
for name in $names
do
case "$name" in
*/) printf "040000 tree %s\t%s\n" $tree "${name%/}" ;;
*) printf "100644 blob %s\t%s\n" $blob "$name" ;;
esac
done >badtree &&
badtree=$(git mktree <badtree) &&
test_must_fail git fsck 2>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 23 - tree object with duplicate names: x x.1 x/
expecting success of 1450.24 '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 <tree) &&
for name in $names
do
case "$name" in
*/) printf "040000 tree %s\t%s\n" $tree "${name%/}" ;;
*) printf "100644 blob %s\t%s\n" $blob "$name" ;;
esac
done >badtree &&
badtree=$(git mktree <badtree) &&
test_must_fail git fsck 2>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 24 - tree object with duplicate names: x x.1.2 x.1/ x/
expecting success of 1450.25 '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 <tree) &&
for name in $names
do
case "$name" in
*/) printf "040000 tree %s\t%s\n" $tree "${name%/}" ;;
*) printf "100644 blob %s\t%s\n" $blob "$name" ;;
esac
done >badtree &&
badtree=$(git mktree <badtree) &&
test_must_fail git fsck 2>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 25 - tree object with duplicate names: x x.1 x.1.2 x/
expecting success of 1450.26 'unparseable tree object':
test_oid_cache <<-\EOF &&
junk sha1:twenty-bytes-of-junk
junk sha256:twenty-bytes-of-junk-twelve-more
EOF
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
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 26 - unparseable tree object
expecting success of 1450.27 '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
error: object 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 is a blob, not a tree
error: object 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 is a blob, not a tree
ok 27 - tree entry with type mismatch
expecting success of 1450.28 'tree entry with bogus mode':
test_when_finished "remove_object \$blob" &&
test_when_finished "remove_object \$tree" &&
blob=$(echo blob | git hash-object -w --stdin) &&
blob_oct=$(echo $blob | hex2oct) &&
tree=$(printf "100000 foo\0${blob_oct}" |
git hash-object -t tree --stdin -w --literally) &&
git fsck 2>err &&
cat >expect <<-EOF &&
warning in tree $tree: badFilemode: contains bad file modes
EOF
test_cmp expect err
dangling tree fa6222e05ba24eb3b839e1bd1298d82db50e5d2c
ok 28 - tree entry with bogus mode
expecting success of 1450.29 'tag pointing to nonexistent':
badoid=$(test_oid deadbeef) &&
cat >invalid-tag <<-EOF &&
object $badoid
type commit
tag invalid
tagger T A Gger <tagger@example.com> 1234567890 -0000
This is an invalid tag.
EOF
tag=$(git hash-object -t tag -w --stdin <invalid-tag) &&
test_when_finished "remove_object $tag" &&
echo $tag >.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
broken link from tag 5248b3501322f3dd3ac19713bbbe83f70183da53
ok 29 - tag pointing to nonexistent
expecting success of 1450.30 '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 <tagger@example.com> 1234567890 -0000
This is an invalid tag.
EOF
tag=$(git hash-object -t tag -w --stdin <wrong-tag) &&
test_when_finished "remove_object $tag" &&
echo $tag >.git/refs/tags/wrong &&
test_when_finished "git update-ref -d refs/tags/wrong" &&
test_must_fail git fsck --tags
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 30 - tag pointing to something else than its type
expecting success of 1450.31 'tag with incorrect tag name & missing tagger':
sha=$(git rev-parse HEAD) &&
cat >wrong-tag <<-EOF &&
object $sha
type commit
tag wrong name format
This is an invalid tag.
EOF
tag=$(git hash-object --literally -t tag -w --stdin <wrong-tag) &&
test_when_finished "remove_object $tag" &&
echo $tag >.git/refs/tags/wrong &&
test_when_finished "git update-ref -d refs/tags/wrong" &&
git fsck --tags 2>out &&
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_cmp expect out
tagged commit c9145d6720f85544cc4bb6009a2e541660aa156b (wrong name format) in 6d73f1b4d41e4fdac4ba717a11e7409876bb75c3
ok 31 - tag with incorrect tag name & missing tagger
expecting success of 1450.32 '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
This is an invalid tag.
EOF
tag=$(git hash-object --literally -t tag -w --stdin <wrong-tag) &&
test_when_finished "remove_object $tag" &&
echo $tag >.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
error in tag d037dcc834669cc0c5d3416130c899572cb1aedd: missingEmail: invalid author/committer line - missing email
ok 32 - tag with bad tagger
expecting success of 1450.33 '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 <tagger@example.com> 1234567890 -0000
This is an invalid tag.
EOF
tag=$(git hash-object --literally -t tag -w --stdin <tag-NUL-header) &&
test_when_finished "remove_object $tag" &&
echo $tag >.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
error in tag 6251166df5b0f4b7f840db1a9af555089418c925: nulInHeader: unterminated header: NUL at offset 73
ok 33 - tag with NUL in header
expecting success of 1450.34 'cleaned up':
git fsck >actual 2>&1 &&
test_must_be_empty actual
ok 34 - cleaned up
expecting success of 1450.35 'rev-list --verify-objects':
git rev-list --verify-objects --all >/dev/null 2>out &&
test_must_be_empty out
ok 35 - rev-list --verify-objects
expecting success of 1450.36 '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" &&
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 36 - rev-list --verify-objects with bad sha1
expecting success of 1450.37 'rev-list --verify-objects notices swapped commits':
git init swapped-commits &&
(
cd swapped-commits &&
test_commit one &&
test_commit two &&
one_oid=$(git rev-parse HEAD) &&
two_oid=$(git rev-parse HEAD^) &&
one=.git/objects/$(test_oid_to_path $one_oid) &&
two=.git/objects/$(test_oid_to_path $two_oid) &&
mv $one tmp &&
mv $two $one &&
mv tmp $two &&
test_must_fail git rev-list --verify-objects HEAD
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/swapped-commits/.git/
[master (root-commit) 4331c28] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
[master 00bbe3d] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 two.t
error: hash mismatch 00bbe3d52a615188595aba57d395b47d615da292
fatal: bad object HEAD
ok 37 - rev-list --verify-objects notices swapped commits
expecting success of 1450.38 'set up repository with commit-graph':
git init corrupt-graph &&
(
cd corrupt-graph &&
test_commit one &&
test_commit two &&
git commit-graph write --reachable
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/corrupt-graph/.git/
[master (root-commit) 4331c28] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
[master 00bbe3d] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 two.t
ok 38 - set up repository with commit-graph
expecting success of 1450.39 'rev-list --verify-objects with commit graph (tip)':
corrupt_graph_obj HEAD &&
test_must_fail git -C corrupt-graph rev-list --verify-objects HEAD
error: inflate: data stream error (incorrect header check)
error: unable to unpack 00bbe3d52a615188595aba57d395b47d615da292 header
error: inflate: data stream error (incorrect header check)
error: unable to unpack 00bbe3d52a615188595aba57d395b47d615da292 header
fatal: loose object 00bbe3d52a615188595aba57d395b47d615da292 (stored in .git/objects/00/bbe3d52a615188595aba57d395b47d615da292) is corrupt
ok 39 - rev-list --verify-objects with commit graph (tip)
expecting success of 1450.40 'rev-list --verify-objects with commit graph (parent)':
corrupt_graph_obj HEAD^ &&
test_must_fail git -C corrupt-graph rev-list --verify-objects HEAD
error: inflate: data stream error (incorrect header check)
error: unable to unpack 4331c280ae8691e937f22f78e998805a89a91a07 header
fatal: loose object 4331c280ae8691e937f22f78e998805a89a91a07 (stored in .git/objects/43/31c280ae8691e937f22f78e998805a89a91a07) is corrupt
ok 40 - rev-list --verify-objects with commit graph (parent)
expecting success of 1450.41 'force fsck to ignore double author':
git cat-file commit HEAD >basis &&
sed "s/^author .*/&,&/" <basis | tr , \\n >multiple-authors &&
new=$(git hash-object --literally -t commit -w --stdin <multiple-authors) &&
test_when_finished "remove_object $new" &&
git update-ref refs/heads/bogus "$new" &&
test_when_finished "git update-ref -d refs/heads/bogus" &&
test_must_fail git fsck &&
git -c fsck.multipleAuthors=ignore fsck
error in commit 3d94ae45b63882b239b90285e1f253e2d4cd5e9f: multipleAuthors: invalid format - multiple 'author' lines
ok 41 - force fsck to ignore double author
expecting success of 1450.42 'fsck notices blob entry pointing to null sha1':
(git init null-blob &&
cd null-blob &&
sha=$(printf "100644 file$_bz$_bzoid" |
git hash-object --literally -w --stdin -t tree) &&
git fsck 2>out &&
test_i18ngrep "warning.*null sha1" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/null-blob/.git/
dangling tree aaf928e9279b56c88bcc8d79f881e5c820ea23e8
warning in tree aaf928e9279b56c88bcc8d79f881e5c820ea23e8: nullSha1: contains entries pointing to null sha1
ok 42 - fsck notices blob entry pointing to null sha1
expecting success of 1450.43 'fsck notices submodule entry pointing to null sha1':
(git init null-commit &&
cd null-commit &&
sha=$(printf "160000 submodule$_bz$_bzoid" |
git hash-object --literally -w --stdin -t tree) &&
git fsck 2>out &&
test_i18ngrep "warning.*null sha1" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/null-commit/.git/
dangling tree f87f3eabd15018382578c00e3a71a46c842e17e6
warning in tree f87f3eabd15018382578c00e3a71a46c842e17e6: nullSha1: contains entries pointing to null sha1
ok 43 - fsck notices submodule entry pointing to null sha1
expecting success of 1450.44 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dot-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 4d6a3deda84474ed5f701962ea9bf83c5fe08185
warning in tree 4d6a3deda84474ed5f701962ea9bf83c5fe08185: hasDot: contains '.'
ok 44 - fsck notices . as blob
expecting success of 1450.45 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dot-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 8984d55df404e56c99a9c5a2e5a168084a913e8f
warning in tree 8984d55df404e56c99a9c5a2e5a168084a913e8f: hasDot: contains '.'
ok 45 - fsck notices . as tree
expecting success of 1450.46 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotdot-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 879560d9e3297f45ca9c25d4eea563f8dd179a32
warning in tree 879560d9e3297f45ca9c25d4eea563f8dd179a32: hasDotdot: contains '..'
ok 46 - fsck notices .. as blob
expecting success of 1450.47 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotdot-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree e704ff9811f799e752c8894dbc145bc74e4561fa
warning in tree e704ff9811f799e752c8894dbc145bc74e4561fa: hasDotdot: contains '..'
ok 47 - fsck notices .. as tree
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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 8ac5f64528d35de17a03755d2f3387af1de58b5a
warning in tree 8ac5f64528d35de17a03755d2f3387af1de58b5a: hasDotgit: contains '.git'
ok 48 - fsck notices .git as blob
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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 69237360529ca48e6b6c1af14e753faabe339fb7
warning in tree 69237360529ca48e6b6c1af14e753faabe339fb7: hasDotgit: contains '.git'
ok 49 - fsck notices .git as tree
expecting success of 1450.50 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-case-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 56bac0d7a0a3c1451521352e3d40117e5ffc602e
warning in tree 56bac0d7a0a3c1451521352e3d40117e5ffc602e: hasDotgit: contains '.git'
ok 50 - fsck notices .GIT as blob
expecting success of 1450.51 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-case-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 968a2dfde1e164e0513456c00ef656b2497434a3
warning in tree 968a2dfde1e164e0513456c00ef656b2497434a3: hasDotgit: contains '.git'
ok 51 - fsck notices .GIT as tree
expecting success of 1450.52 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-unicode-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 2b65491a1b39699fb2bffda8e997c85fcb9c7beb
warning in tree 2b65491a1b39699fb2bffda8e997c85fcb9c7beb: hasDotgit: contains '.git'
ok 52 - fsck notices .gI{u200c}T as blob
expecting success of 1450.53 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-unicode-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 6a547d921721f1cf91601a53fcc7aae232947d23
warning in tree 6a547d921721f1cf91601a53fcc7aae232947d23: hasDotgit: contains '.git'
ok 53 - fsck notices .gI{u200c}T as tree
expecting success of 1450.54 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-case2-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 3e29dd65f814deffead951c60da749fdf8a668c8
warning in tree 3e29dd65f814deffead951c60da749fdf8a668c8: hasDotgit: contains '.git'
ok 54 - fsck notices .Git as blob
expecting success of 1450.55 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-case2-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 50c7c9624762f2fe0d4efe5cba98835f58822ef4
warning in tree 50c7c9624762f2fe0d4efe5cba98835f58822ef4: hasDotgit: contains '.git'
ok 55 - fsck notices .Git as tree
expecting success of 1450.56 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/git-tilde1-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 1206e1b64fcedc2a9e7b8195c1c4c1a278285b20
warning in tree 1206e1b64fcedc2a9e7b8195c1c4c1a278285b20: hasDotgit: contains '.git'
ok 56 - fsck notices git~1 as blob
expecting success of 1450.57 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/git-tilde1-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 06f99accfb778f3318c72f3ae1c809cca146d27c
warning in tree 06f99accfb778f3318c72f3ae1c809cca146d27c: hasDotgit: contains '.git'
ok 57 - fsck notices git~1 as tree
expecting success of 1450.58 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgitdot-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 08554698725ae2bc2c2ae0172779111c62bda7a2
warning in tree 08554698725ae2bc2c2ae0172779111c62bda7a2: hasDotgit: contains '.git'
ok 58 - fsck notices .git. as blob
expecting success of 1450.59 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgitdot-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 4d7df7e65b79aeef4640dbfba95705b94a2bc266
warning in tree 4d7df7e65b79aeef4640dbfba95705b94a2bc266: hasDotgit: contains '.git'
ok 59 - fsck notices .git. as tree
expecting success of 1450.60 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dot-backslash-case-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 4447c608c557aa9e2d0d226c7af1f06937133ea1
warning in tree 4447c608c557aa9e2d0d226c7af1f06937133ea1: hasDotgit: contains '.git'
ok 60 - fsck notices .\.GIT\foobar as blob
expecting success of 1450.61 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dot-backslash-case-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree a8562dc6d26106f039fc8af6b2aa6fed2b1e14d4
warning in tree a8562dc6d26106f039fc8af6b2aa6fed2b1e14d4: hasDotgit: contains '.git'
ok 61 - fsck notices .\.GIT\foobar as tree
expecting success of 1450.62 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-case-backslash-blob/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree 707c253cde8e3742e9f02a3cf02fdc4ca0f55652
warning in tree 707c253cde8e3742e9f02a3cf02fdc4ca0f55652: hasDotgit: contains '.git'
ok 62 - fsck notices .git\foobar as blob
expecting success of 1450.63 '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 <bad) &&
git fsck 2>out &&
test_i18ngrep "warning.*tree $bad_tree" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dotgit-case-backslash-tree/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree caa586f8ddde64c3fc9157a3a262c9bd6a6a41ff
warning in tree caa586f8ddde64c3fc9157a3a262c9bd6a6a41ff: hasDotgit: contains '.git'
ok 63 - fsck notices .git\foobar as tree
expecting success of 1450.64 '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 <tree) &&
git fsck 2>err &&
test_line_count = 0 err
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/not-dotgit/.git/
[master (root-commit) ebd6d19] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
dangling tree b6cf3d0dca284724c6c6a7005056d573f86157d7
ok 64 - fsck allows .Ňit
expecting success of 1450.65 '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 <original >munged &&
git hash-object --literally -w -t commit --stdin <munged >name &&
git branch bad $(cat name) &&
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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/nul-in-commit/.git/
[master (root-commit) c31a7f2] initial commitQNUL after message
Author: A U Thor <author@example.com>
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 65 - NUL in commit
expecting success of 1450.66 'fsck notices missing blob':
create_repo_missing HEAD:subdir/file &&
test_must_fail git -C missing fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/missing/.git/
[master (root-commit) d38f542] one
Author: A U Thor <author@example.com>
[master ca32bda] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 subdir/file
missing blob d95f3ad14dee633a758d2e331151e950dd13e4ed
ok 66 - fsck notices missing blob
expecting success of 1450.67 'fsck notices missing subtree':
create_repo_missing HEAD:subdir &&
test_must_fail git -C missing fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/missing/.git/
[master (root-commit) d38f542] one
Author: A U Thor <author@example.com>
[master ca32bda] two
Author: A U Thor <author@example.com>
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 67 - fsck notices missing subtree
expecting success of 1450.68 'fsck notices missing root tree':
create_repo_missing HEAD^{tree} &&
test_must_fail git -C missing fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/missing/.git/
[master (root-commit) d38f542] one
Author: A U Thor <author@example.com>
[master ca32bda] two
Author: A U Thor <author@example.com>
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 68 - fsck notices missing root tree
expecting success of 1450.69 'fsck notices missing parent':
create_repo_missing HEAD^ &&
test_must_fail git -C missing fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/missing/.git/
[master (root-commit) d38f542] one
Author: A U Thor <author@example.com>
[master ca32bda] two
Author: A U Thor <author@example.com>
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 69 - fsck notices missing parent
expecting success of 1450.70 'fsck notices missing tagged object':
create_repo_missing tag^{blob} &&
test_must_fail git -C missing fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/missing/.git/
[master (root-commit) d38f542] one
Author: A U Thor <author@example.com>
[master ca32bda] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 subdir/file
broken link from tag 7c115056e13b1f41142fe9e6f6cb98a1c077facd
to blob c21c9352f7526e9576892a6631e0e8cf1fccd34d
missing blob c21c9352f7526e9576892a6631e0e8cf1fccd34d
ok 70 - fsck notices missing tagged object
expecting success of 1450.71 'fsck notices ref pointing to missing commit':
create_repo_missing HEAD &&
test_must_fail git -C missing fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/missing/.git/
[master (root-commit) d38f542] one
Author: A U Thor <author@example.com>
[master ca32bda] two
Author: A U Thor <author@example.com>
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 71 - fsck notices ref pointing to missing commit
expecting success of 1450.72 'fsck notices ref pointing to missing tag':
create_repo_missing tag &&
test_must_fail git -C missing fsck
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/missing/.git/
[master (root-commit) d38f542] one
Author: A U Thor <author@example.com>
[master ca32bda] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 subdir/file
error: refs/tags/tag: invalid sha1 pointer 7c115056e13b1f41142fe9e6f6cb98a1c077facd
dangling blob c21c9352f7526e9576892a6631e0e8cf1fccd34d
ok 72 - fsck notices ref pointing to missing tag
expecting success of 1450.73 'fsck --connectivity-only':
rm -rf connectivity-only &&
git init connectivity-only &&
(
cd connectivity-only &&
touch empty &&
git add empty &&
test_commit empty &&
# 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 &&
# 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 &&
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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/connectivity-only/.git/
[master (root-commit) 86520b7] empty
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+)
create mode 100644 empty
create mode 100644 empty.t
error: c21c9352f7526e9576892a6631e0e8cf1fccd34d: hash-path mismatch, found at: .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 73 - fsck --connectivity-only
expecting success of 1450.74 '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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/connectivity-only/.git/
[master (root-commit) 31f3b95] foo
Author: A U Thor <author@example.com>
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 74 - fsck --connectivity-only with explicit head
expecting success of 1450.75 'fsck --name-objects':
rm -rf name-objects &&
git init name-objects &&
(
cd name-objects &&
git config core.logAllRefUpdates false &&
test_commit julius caesar.t &&
test_commit augustus44 &&
test_commit caesar &&
remove_object $(git rev-parse julius:caesar.t) &&
tree=$(git rev-parse --verify julius:) &&
git tag -d julius &&
test_must_fail git fsck --name-objects >out &&
test_i18ngrep "$tree (refs/tags/augustus44\\^:" out
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/name-objects/.git/
[master (root-commit) 6ab43a8] julius
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 caesar.t
[master d65fd68] augustus44
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 augustus44.t
[master 6d0b31d] caesar
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Deleted tag 'julius' (was 6ab43a8)
broken link from tree c2fab98f409a47394d992eca10a20e0b22377c0c (refs/tags/augustus44^:)
ok 75 - fsck --name-objects
expecting success of 1450.76 '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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/alt.git/
error: object file /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/alt.git/objects/01/23456789012345678901234567890123456789 is empty
error: unable to mmap /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/alt.git/objects/01/23456789012345678901234567890123456789: No such file or directory
error: 0123456789012345678901234567890123456789: object corrupt or missing: /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/alt.git/objects/01/23456789012345678901234567890123456789
ok 76 - alternate objects are correctly blamed
expecting success of 1450.77 'fsck errors in packed objects':
git cat-file commit HEAD >basis &&
sed "s/</one/" basis >one &&
sed "s/</foo/" basis >two &&
one=$(git hash-object --literally -t commit -w one) &&
two=$(git hash-object --literally -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
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 77 - fsck errors in packed objects
expecting success of 1450.78 'fsck fails on corrupt packfile':
hsh=$(git commit-tree -m mycommit HEAD^{tree}) &&
pack=$(echo $hsh | git pack-objects .git/objects/pack/pack) &&
# 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 &&
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
1+0 records in
1+0 records out
1 byte copied, 0.000125021 s, 8.0 kB/s
error: .git/objects/pack/pack-8be9f6a4139bcddd74c3d2ed343bb71e87863c4b.pack pack checksum mismatch
ok 78 - fsck fails on corrupt packfile
expecting success of 1450.79 '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
oid="$(git rev-parse HEAD)" &&
file=$(sha1_file "$oid") &&
rm "$file" &&
echo broken >"$file" &&
test_must_fail git fsck 2>err &&
cat >expect <<-EOF &&
error: inflate: data stream error (incorrect header check)
error: unable to unpack header of $file
error: $oid: object corrupt or missing: $file
EOF
grep "^error: " err >actual &&
test_cmp expect actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/broken-duplicate/.git/
[master (root-commit) d19e0e2] duplicate
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 duplicate.t
ok 79 - fsck finds problems in duplicate loose objects
expecting success of 1450.80 '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
error: garbage at end of loose object '59ac8713639e31797addb7a886b8f5f6637bda3c'
ok 80 - fsck detects trailing loose garbage (commit)
expecting success of 1450.81 '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
error: garbage at end of loose object '1e285548b47be8577f0549b6ebcecb242e692df3'
ok 81 - fsck detects trailing loose garbage (large blob)
expecting success of 1450.82 '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" &&
# check both regular and streaming code paths
test_must_fail git fsck 2>out &&
test_i18ngrep corrupt.*$blob out &&
test_must_fail git -c core.bigfilethreshold=128 fsck 2>out &&
test_i18ngrep corrupt.*$blob out
error: corrupt loose object 'a56f9fb3e06dcfb3e5088f319ee1d4ccd1e05098'
error: corrupt loose object 'a56f9fb3e06dcfb3e5088f319ee1d4ccd1e05098'
ok 82 - fsck detects truncated loose object
expecting success of 1450.83 '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) &&
cat >expect <<-EOF
dangling blob $dblob
dangling commit $dcommit
dangling tree $dtree
EOF
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/dangling/.git/
ok 83 - create dangling-object repository
expecting success of 1450.84 'fsck notices dangling objects':
(
cd dangling &&
git fsck >actual &&
# the output order is non-deterministic, as it comes from a hash
sort <actual >actual.sorted &&
test_cmp expect actual.sorted
)
notice: HEAD points to an unborn branch (master)
notice: No default references
ok 84 - fsck notices dangling objects
expecting success of 1450.85 '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 >actual.sorted &&
test_cmp expect actual.sorted
)
notice: HEAD points to an unborn branch (master)
notice: No default references
ok 85 - fsck --connectivity-only notices dangling objects
expecting success of 1450.86 'fsck $name notices bogus $name':
test_must_fail git fsck bogus &&
test_must_fail git fsck $ZERO_OID
error: invalid parameter: expected sha1, got 'bogus'
dangling commit c9145d6720f85544cc4bb6009a2e541660aa156b
error: 0000000000000000000000000000000000000000: object missing
dangling commit c9145d6720f85544cc4bb6009a2e541660aa156b
ok 86 - fsck $name notices bogus $name
expecting success of 1450.87 '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
rm 'foo'
ok 87 - bogus head does not fallback to all heads
expecting success of 1450.88 '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 88 - detect corrupt index file in fsck
expecting success of 1450.89 'fsck error and recovery on invalid object type':
git init --bare garbage-type &&
(
cd garbage-type &&
garbage_blob=$(git hash-object --stdin -w -t garbage --literally </dev/null) &&
cat >err.expect <<-\EOF &&
fatal: invalid object type
EOF
test_must_fail git fsck >out 2>err &&
grep -e "^error" -e "^fatal" err >errors &&
test_line_count = 1 errors &&
grep "$garbage_blob: object is of unknown type 'garbage':" err
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1450-fsck/garbage-type/
error: 8315a83d2acc4c174aed59430f9a9c4ed926440f: object is of unknown type 'garbage': ./objects/83/15a83d2acc4c174aed59430f9a9c4ed926440f
ok 89 - fsck error and recovery on invalid object type
expecting success of 1450.90 'fsck error on gitattributes with excessive line lengths':
blob=$(printf "pattern %02048d" 1 | git hash-object -w --stdin) &&
test_when_finished "remove_object $blob" &&
tree=$(printf "100644 blob %s\t%s\n" $blob .gitattributes | git mktree) &&
test_when_finished "remove_object $tree" &&
cat >expected <<-EOF &&
error in blob $blob: gitattributesLineLength: .gitattributes has too long lines to parse
EOF
test_must_fail git fsck --no-dangling >actual 2>&1 &&
test_cmp expected actual
ok 90 - fsck error on gitattributes with excessive line lengths
expecting success of 1450.91 'fsck error on gitattributes with excessive size':
blob=$(test-tool genzeros $((100 * 1024 * 1024 + 1)) | git hash-object -w --stdin) &&
test_when_finished "remove_object $blob" &&
tree=$(printf "100644 blob %s\t%s\n" $blob .gitattributes | git mktree) &&
test_when_finished "remove_object $tree" &&
cat >expected <<-EOF &&
error in blob $blob: gitattributesLarge: .gitattributes too large to parse
EOF
test_must_fail git fsck --no-dangling >actual 2>&1 &&
test_cmp expected actual
ok 91 - fsck error on gitattributes with excessive size
# passed all 91 test(s)
1..91
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1601-index-bogus.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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)
ok 1 - create tree with null sha1
expecting success of 1601.2 'read-tree refuses to read null sha1':
test_must_fail git read-tree $tree
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 1601.3 'GIT_ALLOW_NULL_SHA1 overrides refusal':
GIT_ALLOW_NULL_SHA1=1 git read-tree $tree
warning: cache entry has null sha1: broken
ok 3 - GIT_ALLOW_NULL_SHA1 overrides refusal
expecting success of 1601.4 'git write-tree refuses to write null sha1':
test_must_fail git write-tree
error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken'
fatal: git-write-tree: error building trees
ok 4 - git write-tree refuses to write null sha1
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1700-split-index.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
base_v3 sha1:39d890139ee5356c7ef572216cebcd27aa41f9df
base_v3 sha256:c9baeadf905112bf6c17aefbd7d02267afd70ded613c30cafed2d40cb506e1ed
own_v4 sha1:432ef4b63f32193984f339431fd50ca796493569
own_v4 sha256:6738ac6319c25b694afa7bcc313deb182d1a59b68bf7a47b4296de83478c0420
base_v4 sha1:508851a7f0dfa8691e9f69c7f055865389012491
base_v4 sha256:3177d4adfdd4b6904f7e921d91d715a471c0dde7cf6a4bba574927f02b699508
EOF
ok 1 - setup
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) &&
# 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 &&
cat >expect <<-EOF &&
own $own
base $base
replacements:
deletions:
EOF
test_cmp expect actual
ok 2 - enable split index
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 &&
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
ok 3 - add one file
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 &&
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
ok 4 - disable split index
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 &&
test-tool dump-split-index .git/index | sed "/^own/d" >actual &&
cat >expect <<-EOF &&
$BASE
replacements:
deletions:
EOF
test_cmp expect actual
ok 5 - enable split index again, "one" now belongs to base index"
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 &&
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
ok 6 - modify original file, base index untouched
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 &&
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
ok 7 - add another file, which stays index
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 &&
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
ok 8 - remove file not in base index
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 &&
test-tool dump-split-index .git/index | sed "/^own/d" >actual &&
cat >expect <<-EOF &&
$BASE
replacements:
deletions: 0
EOF
test_cmp expect actual
ok 9 - remove file in base index
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 &&
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
ok 10 - add original file back
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
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 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
ok 12 - unify index, two files remain
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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 14 - set core.splitIndex config variable to true
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
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 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 16 - set core.splitIndex config variable back to true
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
ok 17 - check behavior with splitIndex.maxPercentChange unset
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
ok 18 - check splitIndex.maxPercentChange set to 0
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 19 - shared index files expire after 2 weeks by default
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 20 - check splitIndex.sharedIndexExpire set to 16 days
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 21 - check splitIndex.sharedIndexExpire set to "never" and "now"
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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1700-split-index/same-mode/.git/
[main (root-commit) 0ddfaf1] A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A.t
On branch main
Untracked files:
(use "git add <file>..." 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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1700-split-index/ro/.git/
[main (root-commit) 24b24cf] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 initial.t
ok 25 - graceful handling when splitting index is not allowed
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 &&
tree=$(git mktree <broken-tree) &&
test_tick &&
commit=$(git commit-tree $tree -p HEAD <msg) &&
git update-ref HEAD "$commit" &&
GIT_ALLOW_NULL_SHA1=1 git reset --hard &&
test_might_fail test-tool dump-cache-tree >cache-tree.out &&
test_line_count = 0 cache-tree.out
[main (root-commit) 57c62fa] commit
Author: A U Thor <author@example.com>
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
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 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 main &&
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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1700-split-index/merge/.git/
[main (root-commit) 5e30013] initial
Author: A U Thor <author@example.com>
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 <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 extra.t
Switched to branch 'main'
[main 34c8267] more
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 more.t
Merge made by the 'ort' 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 1700.28 'reading split index at alternate location':
git init reading-alternate-location &&
(
cd reading-alternate-location &&
>file-in-alternate &&
git update-index --split-index --add file-in-alternate
) &&
echo file-in-alternate >expect &&
# Should be able to find the shared index both right next to
# the specified split index file ...
GIT_INDEX_FILE=./reading-alternate-location/.git/index \
git ls-files --cached >actual &&
test_cmp expect actual &&
# ... and, for backwards compatibility, in the current GIT_DIR
# as well.
mv -v ./reading-alternate-location/.git/sharedindex.* .git &&
GIT_INDEX_FILE=./reading-alternate-location/.git/index \
git ls-files --cached >actual &&
test_cmp expect actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1700-split-index/reading-alternate-location/.git/
renamed './reading-alternate-location/.git/sharedindex.f0cd40c245ade399f2b6a910f6f04edd59482e2c' -> '.git/sharedindex.f0cd40c245ade399f2b6a910f6f04edd59482e2c'
ok 28 - reading split index at alternate location
expecting success of 1700.29 'GIT_TEST_SPLIT_INDEX works':
git init git-test-split-index &&
(
cd git-test-split-index &&
>file &&
GIT_TEST_SPLIT_INDEX=1 git update-index --add file &&
ls -l .git/sharedindex.* >actual &&
test_line_count = 1 actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1700-split-index/git-test-split-index/.git/
ok 29 - GIT_TEST_SPLIT_INDEX works
# passed all 29 test(s)
1..29
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1800-hook.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1800-hook/.git/
expecting success of 1800.1 'git hook usage':
test_expect_code 129 git hook &&
test_expect_code 129 git hook run &&
test_expect_code 129 git hook run -h &&
test_expect_code 129 git hook run --unknown 2>err &&
grep "unknown option" err
error: need a subcommand
usage: git hook run [--ignore-missing] [--to-stdin=<path>] <hook-name> [-- <hook-args>]
usage: git hook run [--ignore-missing] [--to-stdin=<path>] <hook-name> [-- <hook-args>]
--ignore-missing silently ignore missing requested <hook-name>
--to-stdin <path> file to read into hooks' stdin
usage: git hook run [--ignore-missing] [--to-stdin=<path>] <hook-name> [-- <hook-args>]
--ignore-missing silently ignore missing requested <hook-name>
--to-stdin <path> file to read into hooks' stdin
error: unknown option `unknown'
ok 1 - git hook usage
expecting success of 1800.2 'git hook run: nonexistent hook':
cat >stderr.expect <<-\EOF &&
error: cannot find a hook named test-hook
EOF
test_expect_code 1 git hook run test-hook 2>stderr.actual &&
test_cmp stderr.expect stderr.actual
ok 2 - git hook run: nonexistent hook
expecting success of 1800.3 'git hook run: nonexistent hook with --ignore-missing':
git hook run --ignore-missing does-not-exist 2>stderr.actual &&
test_must_be_empty stderr.actual
ok 3 - git hook run: nonexistent hook with --ignore-missing
expecting success of 1800.4 'git hook run: basic':
test_hook test-hook <<-EOF &&
echo Test hook
EOF
cat >expect <<-\EOF &&
Test hook
EOF
git hook run test-hook 2>actual &&
test_cmp expect actual
ok 4 - git hook run: basic
expecting success of 1800.5 'git hook run: stdout and stderr both write to our stderr':
test_hook test-hook <<-EOF &&
echo >&1 Will end up on stderr
echo >&2 Will end up on stderr
EOF
cat >stderr.expect <<-\EOF &&
Will end up on stderr
Will end up on stderr
EOF
git hook run test-hook >stdout.actual 2>stderr.actual &&
test_cmp stderr.expect stderr.actual &&
test_must_be_empty stdout.actual
ok 5 - git hook run: stdout and stderr both write to our stderr
expecting success of 1800.6 'git hook run: exit code 1 is passed along':
test_hook test-hook <<-EOF &&
exit $code
EOF
test_expect_code $code git hook run test-hook
ok 6 - git hook run: exit code 1 is passed along
expecting success of 1800.7 'git hook run: exit code 2 is passed along':
test_hook test-hook <<-EOF &&
exit $code
EOF
test_expect_code $code git hook run test-hook
ok 7 - git hook run: exit code 2 is passed along
expecting success of 1800.8 'git hook run: exit code 128 is passed along':
test_hook test-hook <<-EOF &&
exit $code
EOF
test_expect_code $code git hook run test-hook
ok 8 - git hook run: exit code 128 is passed along
expecting success of 1800.9 'git hook run: exit code 129 is passed along':
test_hook test-hook <<-EOF &&
exit $code
EOF
test_expect_code $code git hook run test-hook
ok 9 - git hook run: exit code 129 is passed along
expecting success of 1800.10 'git hook run arg u ments without -- is not allowed':
test_expect_code 129 git hook run test-hook arg u ments
usage: git hook run [--ignore-missing] [--to-stdin=<path>] <hook-name> [-- <hook-args>]
--ignore-missing silently ignore missing requested <hook-name>
--to-stdin <path> file to read into hooks' stdin
ok 10 - git hook run arg u ments without -- is not allowed
expecting success of 1800.11 'git hook run -- pass arguments':
test_hook test-hook <<-\EOF &&
echo $1
echo $2
EOF
cat >expect <<-EOF &&
arg
u ments
EOF
git hook run test-hook -- arg "u ments" 2>actual &&
test_cmp expect actual
ok 11 - git hook run -- pass arguments
expecting success of 1800.12 'git hook run -- out-of-repo runs excluded':
test_hook test-hook <<-EOF &&
echo Test hook
EOF
nongit test_must_fail git hook run test-hook
fatal: not a git repository (or any of the parent directories): .git
ok 12 - git hook run -- out-of-repo runs excluded
expecting success of 1800.13 'git -c core.hooksPath=<PATH> hook run':
mkdir my-hooks &&
write_script my-hooks/test-hook <<-\EOF &&
echo Hook ran $1
EOF
cat >expect <<-\EOF &&
Test hook
Hook ran one
Hook ran two
Hook ran three
Hook ran four
EOF
test_hook test-hook <<-EOF &&
echo Test hook
EOF
# Test various ways of specifying the path. See also
# t1350-config-hooks-path.sh
>actual &&
git hook run test-hook -- ignored 2>>actual &&
git -c core.hooksPath=my-hooks hook run test-hook -- one 2>>actual &&
git -c core.hooksPath=my-hooks/ hook run test-hook -- two 2>>actual &&
git -c core.hooksPath="$PWD/my-hooks" hook run test-hook -- three 2>>actual &&
git -c core.hooksPath="$PWD/my-hooks/" hook run test-hook -- four 2>>actual &&
test_cmp expect actual
ok 13 - git -c core.hooksPath=<PATH> hook run
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 1800.14 'git hook run: stdout and stderr are connected to a TTY':
test_hook_tty hook run pre-commit
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1800-hook/repo/.git/
[master (root-commit) 0ddfaf1] A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A.t
[master d9df450] B
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 B.t
ok 14 - git hook run: stdout and stderr are connected to a TTY
expecting success of 1800.15 'git commit: stdout and stderr are connected to a TTY':
test_hook_tty commit -m"B.new"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1800-hook/repo/.git/
[master (root-commit) a3899a0] A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A.t
[master 7763d60] B
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 B.t
[master 990192d] B.new
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 B.t
ok 15 - git commit: stdout and stderr are connected to a TTY
expecting success of 1800.16 'git hook run a hook with a bad shebang':
test_when_finished "rm -rf bad-hooks" &&
mkdir bad-hooks &&
write_script bad-hooks/test-hook "/bad/path/no/spaces" </dev/null &&
# TODO: We should emit the same (or at least a more similar)
# error on MINGW (essentially Git for Windows) and all other
# platforms.. See the OS-specific code in start_command()
if test_have_prereq !MINGW
then
cat >expect <<-\EOF
fatal: cannot run bad-hooks/test-hook: ...
EOF
else
cat >expect <<-\EOF
error: cannot spawn bad-hooks/test-hook: ...
EOF
fi &&
test_expect_code 1 git \
-c core.hooksPath=bad-hooks \
hook run test-hook >out 2>err &&
test_must_be_empty out &&
sed -e "s/test-hook: .*/test-hook: .../" <err >actual &&
test_cmp expect actual
ok 16 - git hook run a hook with a bad shebang
expecting success of 1800.17 'stdin to hooks':
write_script .git/hooks/test-hook <<-\EOF &&
echo BEGIN stdin
cat
echo END stdin
EOF
cat >expect <<-EOF &&
BEGIN stdin
hello
END stdin
EOF
echo hello >input &&
git hook run --to-stdin=input test-hook 2>actual &&
test_cmp expect actual
ok 17 - stdin to hooks
# passed all 17 test(s)
1..17
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2000-conflict-when-checking-files-out.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 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.
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.
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 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/
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
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 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 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.
expecting success of 2000.11 'add a symlink': test_ln_s_add path2 path3
ok 11 - add a symlink
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 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
# passed all 14 test(s)
1..14
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2002-checkout-cache-u.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 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 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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2003-checkout-cache-mkdir.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <tmp/path1/file1 >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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1510-repo-setup.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/.git/
expecting success of 1510.1 '#0: nonbare repo, no explicit configuration':
try_repo 0 unset unset unset "" unset \
.git "$here/0" "$here/0" "(null)" \
.git "$here/0" "$here/0" sub/ 2>message &&
test_must_be_empty message
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/0/.git/
ok 1 - #0: nonbare repo, no explicit configuration
expecting success of 1510.2 '#1: GIT_WORK_TREE without explicit GIT_DIR is accepted':
try_repo 1 "$here" unset unset "" unset \
"$here/1/.git" "$here" "$here" 1/ \
"$here/1/.git" "$here" "$here" 1/sub/ 2>message &&
test_must_be_empty message
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/1/.git/
ok 2 - #1: GIT_WORK_TREE without explicit GIT_DIR is accepted
expecting success of 1510.3 '#2: worktree defaults to cwd with explicit GIT_DIR':
try_repo 2 unset "$here/2/.git" unset "" unset \
"$here/2/.git" "$here/2" "$here/2" "(null)" \
"$here/2/.git" "$here/2/sub" "$here/2/sub" "(null)"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/2/.git/
ok 3 - #2: worktree defaults to cwd with explicit GIT_DIR
expecting success of 1510.4 '#2b: relative GIT_DIR':
try_repo 2b unset ".git" unset "" unset \
".git" "$here/2b" "$here/2b" "(null)" \
"../.git" "$here/2b/sub" "$here/2b/sub" "(null)"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/2b/.git/
ok 4 - #2b: relative GIT_DIR
expecting success of 1510.5 '#3: setup':
setup_repo 3 unset "" unset &&
mkdir -p 3/sub/sub 3/wt/sub
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/3/.git/
ok 5 - #3: setup
expecting success of 1510.6 '#3: explicit GIT_WORK_TREE and GIT_DIR at toplevel':
try_case $N "$here/$N" .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)"
ok 6 - #3: explicit GIT_WORK_TREE and GIT_DIR at toplevel
expecting success of 1510.7 '#3: explicit GIT_WORK_TREE and GIT_DIR in subdir':
try_case $N/sub/sub "$here/$N" ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/
ok 7 - #3: explicit GIT_WORK_TREE and GIT_DIR in subdir
expecting success of 1510.8 '#3: explicit GIT_WORK_TREE from parent of worktree':
try_case $N "$here/$N/wt" .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)"
ok 8 - #3: explicit GIT_WORK_TREE from parent of worktree
expecting success of 1510.9 '#3: explicit GIT_WORK_TREE from nephew of worktree':
try_case $N/sub/sub "$here/$N/wt" ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)"
ok 9 - #3: explicit GIT_WORK_TREE from nephew of worktree
expecting success of 1510.10 '#3: chdir_to_toplevel uses worktree, not git dir':
try_case $N "$here" .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. "$here/$N/.git" \
"$absgit" "$here" "$here" $N/ &&
try_case $N "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/
ok 10 - #3: chdir_to_toplevel uses worktree, not git dir
expecting success of 1510.11 '#3: chdir_to_toplevel uses worktree (from subdir)':
try_case $N/sub/sub "$here" ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../.. ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../../ "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/
ok 11 - #3: chdir_to_toplevel uses worktree (from subdir)
expecting success of 1510.12 '#4: core.worktree without GIT_DIR set is accepted':
setup_repo 4 ../sub "" unset &&
mkdir -p 4/sub sub &&
try_case 4 unset unset \
.git "$here/4/sub" "$here/4" "(null)" \
"$here/4/.git" "$here/4/sub" "$here/4/sub" "(null)" 2>message &&
test_must_be_empty message
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/4/.git/
ok 12 - #4: core.worktree without GIT_DIR set is accepted
expecting success of 1510.13 '#5: core.worktree + GIT_WORK_TREE is accepted':
# or: you cannot intimidate away the lack of GIT_DIR setting
try_repo 5 "$here" unset "$here/5" "" unset \
"$here/5/.git" "$here" "$here" 5/ \
"$here/5/.git" "$here" "$here" 5/sub/ 2>message &&
try_repo 5a .. unset "$here/5a" "" unset \
"$here/5a/.git" "$here" "$here" 5a/ \
"$here/5a/.git" "$here/5a" "$here/5a" sub/ &&
test_must_be_empty message
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/5/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/5a/.git/
ok 13 - #5: core.worktree + GIT_WORK_TREE is accepted
expecting success of 1510.14 '#6: setting GIT_DIR brings core.worktree to life':
setup_repo 6 "$here/6" "" unset &&
try_case 6 unset .git \
.git "$here/6" "$here/6" "(null)" &&
try_case 6 unset "$here/6/.git" \
"$here/6/.git" "$here/6" "$here/6" "(null)" &&
try_case 6/sub/sub unset ../../.git \
"$here/6/.git" "$here/6" "$here/6" sub/sub/ &&
try_case 6/sub/sub unset "$here/6/.git" \
"$here/6/.git" "$here/6" "$here/6" sub/sub/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/6/.git/
ok 14 - #6: setting GIT_DIR brings core.worktree to life
expecting success of 1510.15 '#6b: GIT_DIR set, core.worktree relative':
setup_repo 6b .. "" unset &&
try_case 6b unset .git \
.git "$here/6b" "$here/6b" "(null)" &&
try_case 6b unset "$here/6b/.git" \
"$here/6b/.git" "$here/6b" "$here/6b" "(null)" &&
try_case 6b/sub/sub unset ../../.git \
"$here/6b/.git" "$here/6b" "$here/6b" sub/sub/ &&
try_case 6b/sub/sub unset "$here/6b/.git" \
"$here/6b/.git" "$here/6b" "$here/6b" sub/sub/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/6b/.git/
ok 15 - #6b: GIT_DIR set, core.worktree relative
expecting success of 1510.16 '#6c: GIT_DIR set, core.worktree=../wt (absolute)':
setup_repo 6c "$here/6c/wt" "" unset &&
mkdir -p 6c/wt/sub &&
try_case 6c unset .git \
.git "$here/6c/wt" "$here/6c" "(null)" &&
try_case 6c unset "$here/6c/.git" \
"$here/6c/.git" "$here/6c/wt" "$here/6c" "(null)" &&
try_case 6c/sub/sub unset ../../.git \
../../.git "$here/6c/wt" "$here/6c/sub/sub" "(null)" &&
try_case 6c/sub/sub unset "$here/6c/.git" \
"$here/6c/.git" "$here/6c/wt" "$here/6c/sub/sub" "(null)"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/6c/.git/
ok 16 - #6c: GIT_DIR set, core.worktree=../wt (absolute)
expecting success of 1510.17 '#6d: GIT_DIR set, core.worktree=../wt (relative)':
setup_repo 6d "$here/6d/wt" "" unset &&
mkdir -p 6d/wt/sub &&
try_case 6d unset .git \
.git "$here/6d/wt" "$here/6d" "(null)" &&
try_case 6d unset "$here/6d/.git" \
"$here/6d/.git" "$here/6d/wt" "$here/6d" "(null)" &&
try_case 6d/sub/sub unset ../../.git \
../../.git "$here/6d/wt" "$here/6d/sub/sub" "(null)" &&
try_case 6d/sub/sub unset "$here/6d/.git" \
"$here/6d/.git" "$here/6d/wt" "$here/6d/sub/sub" "(null)"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/6d/.git/
ok 17 - #6d: GIT_DIR set, core.worktree=../wt (relative)
expecting success of 1510.18 '#6e: GIT_DIR set, core.worktree=../.. (absolute)':
setup_repo 6e "$here" "" unset &&
try_case 6e unset .git \
"$here/6e/.git" "$here" "$here" 6e/ &&
try_case 6e unset "$here/6e/.git" \
"$here/6e/.git" "$here" "$here" 6e/ &&
try_case 6e/sub/sub unset ../../.git \
"$here/6e/.git" "$here" "$here" 6e/sub/sub/ &&
try_case 6e/sub/sub unset "$here/6e/.git" \
"$here/6e/.git" "$here" "$here" 6e/sub/sub/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/6e/.git/
ok 18 - #6e: GIT_DIR set, core.worktree=../.. (absolute)
expecting success of 1510.19 '#6f: GIT_DIR set, core.worktree=../.. (relative)':
setup_repo 6f ../../ "" unset &&
try_case 6f unset .git \
"$here/6f/.git" "$here" "$here" 6f/ &&
try_case 6f unset "$here/6f/.git" \
"$here/6f/.git" "$here" "$here" 6f/ &&
try_case 6f/sub/sub unset ../../.git \
"$here/6f/.git" "$here" "$here" 6f/sub/sub/ &&
try_case 6f/sub/sub unset "$here/6f/.git" \
"$here/6f/.git" "$here" "$here" 6f/sub/sub/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/6f/.git/
ok 19 - #6f: GIT_DIR set, core.worktree=../.. (relative)
expecting success of 1510.20 '#7: setup':
setup_repo 7 non-existent "" unset &&
mkdir -p 7/sub/sub 7/wt/sub
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/7/.git/
ok 20 - #7: setup
expecting success of 1510.21 '#7: explicit GIT_WORK_TREE and GIT_DIR at toplevel':
try_case $N "$here/$N" .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)"
ok 21 - #7: explicit GIT_WORK_TREE and GIT_DIR at toplevel
expecting success of 1510.22 '#7: explicit GIT_WORK_TREE and GIT_DIR in subdir':
try_case $N/sub/sub "$here/$N" ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/
ok 22 - #7: explicit GIT_WORK_TREE and GIT_DIR in subdir
expecting success of 1510.23 '#7: explicit GIT_WORK_TREE from parent of worktree':
try_case $N "$here/$N/wt" .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)"
ok 23 - #7: explicit GIT_WORK_TREE from parent of worktree
expecting success of 1510.24 '#7: explicit GIT_WORK_TREE from nephew of worktree':
try_case $N/sub/sub "$here/$N/wt" ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)"
ok 24 - #7: explicit GIT_WORK_TREE from nephew of worktree
expecting success of 1510.25 '#7: chdir_to_toplevel uses worktree, not git dir':
try_case $N "$here" .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. "$here/$N/.git" \
"$absgit" "$here" "$here" $N/ &&
try_case $N "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/
ok 25 - #7: chdir_to_toplevel uses worktree, not git dir
expecting success of 1510.26 '#7: chdir_to_toplevel uses worktree (from subdir)':
try_case $N/sub/sub "$here" ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../.. ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../../ "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/
ok 26 - #7: chdir_to_toplevel uses worktree (from subdir)
expecting success of 1510.27 '#8: gitfile, easy case':
try_repo 8 unset unset unset gitfile unset \
"$here/8.git" "$here/8" "$here/8" "(null)" \
"$here/8.git" "$here/8" "$here/8" sub/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/8/.git/
ok 27 - #8: gitfile, easy case
expecting success of 1510.28 '#9: GIT_WORK_TREE accepted with gitfile':
mkdir -p 9/wt &&
try_repo 9 wt unset unset gitfile unset \
"$here/9.git" "$here/9/wt" "$here/9" "(null)" \
"$here/9.git" "$here/9/sub/wt" "$here/9/sub" "(null)" 2>message &&
test_must_be_empty message
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/9/.git/
ok 28 - #9: GIT_WORK_TREE accepted with gitfile
expecting success of 1510.29 '#10: GIT_DIR can point to gitfile':
try_repo 10 unset "$here/10/.git" unset gitfile unset \
"$here/10.git" "$here/10" "$here/10" "(null)" \
"$here/10.git" "$here/10/sub" "$here/10/sub" "(null)"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/10/.git/
ok 29 - #10: GIT_DIR can point to gitfile
expecting success of 1510.30 '#10b: relative GIT_DIR can point to gitfile':
try_repo 10b unset .git unset gitfile unset \
"$here/10b.git" "$here/10b" "$here/10b" "(null)" \
"$here/10b.git" "$here/10b/sub" "$here/10b/sub" "(null)"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/10b/.git/
ok 30 - #10b: relative GIT_DIR can point to gitfile
expecting success of 1510.31 '#11: setup':
setup_repo 11 unset gitfile unset &&
mkdir -p 11/sub/sub 11/wt/sub
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/11/.git/
ok 31 - #11: setup
expecting success of 1510.32 '#11: explicit GIT_WORK_TREE and GIT_DIR at toplevel':
try_case $N "$here/$N" .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)"
ok 32 - #11: explicit GIT_WORK_TREE and GIT_DIR at toplevel
expecting success of 1510.33 '#11: explicit GIT_WORK_TREE and GIT_DIR in subdir':
try_case $N/sub/sub "$here/$N" ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/
ok 33 - #11: explicit GIT_WORK_TREE and GIT_DIR in subdir
expecting success of 1510.34 '#11: explicit GIT_WORK_TREE from parent of worktree':
try_case $N "$here/$N/wt" .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)"
ok 34 - #11: explicit GIT_WORK_TREE from parent of worktree
expecting success of 1510.35 '#11: explicit GIT_WORK_TREE from nephew of worktree':
try_case $N/sub/sub "$here/$N/wt" ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)"
ok 35 - #11: explicit GIT_WORK_TREE from nephew of worktree
expecting success of 1510.36 '#11: chdir_to_toplevel uses worktree, not git dir':
try_case $N "$here" .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. "$here/$N/.git" \
"$absgit" "$here" "$here" $N/ &&
try_case $N "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/
ok 36 - #11: chdir_to_toplevel uses worktree, not git dir
expecting success of 1510.37 '#11: chdir_to_toplevel uses worktree (from subdir)':
try_case $N/sub/sub "$here" ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../.. ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../../ "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/
ok 37 - #11: chdir_to_toplevel uses worktree (from subdir)
expecting success of 1510.38 '#12: core.worktree with gitfile is accepted':
try_repo 12 unset unset "$here/12" gitfile unset \
"$here/12.git" "$here/12" "$here/12" "(null)" \
"$here/12.git" "$here/12" "$here/12" sub/ 2>message &&
test_must_be_empty message
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/12/.git/
ok 38 - #12: core.worktree with gitfile is accepted
expecting success of 1510.39 '#13: core.worktree+GIT_WORK_TREE accepted (with gitfile)':
# or: you cannot intimidate away the lack of GIT_DIR setting
try_repo 13 non-existent-too unset non-existent gitfile unset \
"$here/13.git" "$here/13/non-existent-too" "$here/13" "(null)" \
"$here/13.git" "$here/13/sub/non-existent-too" "$here/13/sub" "(null)" 2>message &&
test_must_be_empty message
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/13/.git/
ok 39 - #13: core.worktree+GIT_WORK_TREE accepted (with gitfile)
expecting success of 1510.40 '#14: core.worktree with GIT_DIR pointing to gitfile':
setup_repo 14 "$here/14" gitfile unset &&
try_case 14 unset .git \
"$here/14.git" "$here/14" "$here/14" "(null)" &&
try_case 14 unset "$here/14/.git" \
"$here/14.git" "$here/14" "$here/14" "(null)" &&
try_case 14/sub/sub unset ../../.git \
"$here/14.git" "$here/14" "$here/14" sub/sub/ &&
try_case 14/sub/sub unset "$here/14/.git" \
"$here/14.git" "$here/14" "$here/14" sub/sub/ &&
setup_repo 14c "$here/14c/wt" gitfile unset &&
mkdir -p 14c/wt/sub &&
try_case 14c unset .git \
"$here/14c.git" "$here/14c/wt" "$here/14c" "(null)" &&
try_case 14c unset "$here/14c/.git" \
"$here/14c.git" "$here/14c/wt" "$here/14c" "(null)" &&
try_case 14c/sub/sub unset ../../.git \
"$here/14c.git" "$here/14c/wt" "$here/14c/sub/sub" "(null)" &&
try_case 14c/sub/sub unset "$here/14c/.git" \
"$here/14c.git" "$here/14c/wt" "$here/14c/sub/sub" "(null)" &&
setup_repo 14d "$here/14d/wt" gitfile unset &&
mkdir -p 14d/wt/sub &&
try_case 14d unset .git \
"$here/14d.git" "$here/14d/wt" "$here/14d" "(null)" &&
try_case 14d unset "$here/14d/.git" \
"$here/14d.git" "$here/14d/wt" "$here/14d" "(null)" &&
try_case 14d/sub/sub unset ../../.git \
"$here/14d.git" "$here/14d/wt" "$here/14d/sub/sub" "(null)" &&
try_case 14d/sub/sub unset "$here/14d/.git" \
"$here/14d.git" "$here/14d/wt" "$here/14d/sub/sub" "(null)" &&
setup_repo 14e "$here" gitfile unset &&
try_case 14e unset .git \
"$here/14e.git" "$here" "$here" 14e/ &&
try_case 14e unset "$here/14e/.git" \
"$here/14e.git" "$here" "$here" 14e/ &&
try_case 14e/sub/sub unset ../../.git \
"$here/14e.git" "$here" "$here" 14e/sub/sub/ &&
try_case 14e/sub/sub unset "$here/14e/.git" \
"$here/14e.git" "$here" "$here" 14e/sub/sub/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/14/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/14c/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/14d/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/14e/.git/
ok 40 - #14: core.worktree with GIT_DIR pointing to gitfile
expecting success of 1510.41 '#14b: core.worktree is relative to actual git dir':
setup_repo 14b ../14b gitfile unset &&
try_case 14b unset .git \
"$here/14b.git" "$here/14b" "$here/14b" "(null)" &&
try_case 14b unset "$here/14b/.git" \
"$here/14b.git" "$here/14b" "$here/14b" "(null)" &&
try_case 14b/sub/sub unset ../../.git \
"$here/14b.git" "$here/14b" "$here/14b" sub/sub/ &&
try_case 14b/sub/sub unset "$here/14b/.git" \
"$here/14b.git" "$here/14b" "$here/14b" sub/sub/ &&
setup_repo 14f ../ gitfile unset &&
try_case 14f unset .git \
"$here/14f.git" "$here" "$here" 14f/ &&
try_case 14f unset "$here/14f/.git" \
"$here/14f.git" "$here" "$here" 14f/ &&
try_case 14f/sub/sub unset ../../.git \
"$here/14f.git" "$here" "$here" 14f/sub/sub/ &&
try_case 14f/sub/sub unset "$here/14f/.git" \
"$here/14f.git" "$here" "$here" 14f/sub/sub/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/14b/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/14f/.git/
ok 41 - #14b: core.worktree is relative to actual git dir
expecting success of 1510.42 '#15: setup':
setup_repo 15 non-existent gitfile unset &&
mkdir -p 15/sub/sub 15/wt/sub
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/15/.git/
ok 42 - #15: setup
expecting success of 1510.43 '#15: explicit GIT_WORK_TREE and GIT_DIR at toplevel':
try_case $N "$here/$N" .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)"
ok 43 - #15: explicit GIT_WORK_TREE and GIT_DIR at toplevel
expecting success of 1510.44 '#15: explicit GIT_WORK_TREE and GIT_DIR in subdir':
try_case $N/sub/sub "$here/$N" ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/
ok 44 - #15: explicit GIT_WORK_TREE and GIT_DIR in subdir
expecting success of 1510.45 '#15: explicit GIT_WORK_TREE from parent of worktree':
try_case $N "$here/$N/wt" .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)"
ok 45 - #15: explicit GIT_WORK_TREE from parent of worktree
expecting success of 1510.46 '#15: explicit GIT_WORK_TREE from nephew of worktree':
try_case $N/sub/sub "$here/$N/wt" ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)"
ok 46 - #15: explicit GIT_WORK_TREE from nephew of worktree
expecting success of 1510.47 '#15: chdir_to_toplevel uses worktree, not git dir':
try_case $N "$here" .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. "$here/$N/.git" \
"$absgit" "$here" "$here" $N/ &&
try_case $N "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/
ok 47 - #15: chdir_to_toplevel uses worktree, not git dir
expecting success of 1510.48 '#15: chdir_to_toplevel uses worktree (from subdir)':
try_case $N/sub/sub "$here" ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../.. ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../../ "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/
ok 48 - #15: chdir_to_toplevel uses worktree (from subdir)
expecting success of 1510.49 '#16a: implicitly bare repo (cwd inside .git dir)':
setup_repo 16a unset "" unset &&
mkdir -p 16a/.git/wt/sub &&
try_case 16a/.git unset unset \
. "(null)" "$here/16a/.git" "(null)" &&
try_case 16a/.git/wt unset unset \
"$here/16a/.git" "(null)" "$here/16a/.git/wt" "(null)" &&
try_case 16a/.git/wt/sub unset unset \
"$here/16a/.git" "(null)" "$here/16a/.git/wt/sub" "(null)"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/16a/.git/
ok 49 - #16a: implicitly bare repo (cwd inside .git dir)
expecting success of 1510.50 '#16b: bare .git (cwd inside .git dir)':
setup_repo 16b unset "" true &&
mkdir -p 16b/.git/wt/sub &&
try_case 16b/.git unset unset \
. "(null)" "$here/16b/.git" "(null)" &&
try_case 16b/.git/wt unset unset \
"$here/16b/.git" "(null)" "$here/16b/.git/wt" "(null)" &&
try_case 16b/.git/wt/sub unset unset \
"$here/16b/.git" "(null)" "$here/16b/.git/wt/sub" "(null)"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/16b/.git/
ok 50 - #16b: bare .git (cwd inside .git dir)
expecting success of 1510.51 '#16c: bare .git has no worktree':
try_repo 16c unset unset unset "" true \
.git "(null)" "$here/16c" "(null)" \
"$here/16c/.git" "(null)" "$here/16c/sub" "(null)"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/16c/.git/
ok 51 - #16c: bare .git has no worktree
expecting success of 1510.52 '#16d: bareness preserved across alias':
setup_repo 16d unset "" unset &&
(
cd 16d/.git &&
test_must_fail git status &&
git config alias.st status &&
test_must_fail git st
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/16d/.git/
fatal: this operation must be run in a work tree
fatal: this operation must be run in a work tree
ok 52 - #16d: bareness preserved across alias
expecting success of 1510.53 '#16e: bareness preserved by --bare':
setup_repo 16e unset "" unset &&
(
cd 16e/.git &&
test_must_fail git status &&
test_must_fail git --bare status
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/16e/.git/
fatal: this operation must be run in a work tree
fatal: this operation must be run in a work tree
ok 53 - #16e: bareness preserved by --bare
expecting success of 1510.54 '#17: GIT_WORK_TREE without explicit GIT_DIR is accepted (bare case)':
# Just like #16.
setup_repo 17a unset "" true &&
setup_repo 17b unset "" true &&
mkdir -p 17a/.git/wt/sub &&
mkdir -p 17b/.git/wt/sub &&
try_case 17a/.git "$here/17a" unset \
"$here/17a/.git" "$here/17a" "$here/17a" .git/ \
2>message &&
try_case 17a/.git/wt "$here/17a" unset \
"$here/17a/.git" "$here/17a" "$here/17a" .git/wt/ &&
try_case 17a/.git/wt/sub "$here/17a" unset \
"$here/17a/.git" "$here/17a" "$here/17a" .git/wt/sub/ &&
try_case 17b/.git "$here/17b" unset \
"$here/17b/.git" "$here/17b" "$here/17b" .git/ &&
try_case 17b/.git/wt "$here/17b" unset \
"$here/17b/.git" "$here/17b" "$here/17b" .git/wt/ &&
try_case 17b/.git/wt/sub "$here/17b" unset \
"$here/17b/.git" "$here/17b" "$here/17b" .git/wt/sub/ &&
try_repo 17c "$here/17c" unset unset "" true \
.git "$here/17c" "$here/17c" "(null)" \
"$here/17c/.git" "$here/17c" "$here/17c" sub/ 2>message &&
test_must_be_empty message
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/17a/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/17b/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/17c/.git/
ok 54 - #17: GIT_WORK_TREE without explicit GIT_DIR is accepted (bare case)
expecting success of 1510.55 '#18: bare .git named by GIT_DIR has no worktree':
try_repo 18 unset .git unset "" true \
.git "(null)" "$here/18" "(null)" \
../.git "(null)" "$here/18/sub" "(null)" &&
try_repo 18b unset "$here/18b/.git" unset "" true \
"$here/18b/.git" "(null)" "$here/18b" "(null)" \
"$here/18b/.git" "(null)" "$here/18b/sub" "(null)"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/18/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/18b/.git/
ok 55 - #18: bare .git named by GIT_DIR has no worktree
expecting success of 1510.56 '#19: setup':
setup_repo 19 unset "" true &&
mkdir -p 19/sub/sub 19/wt/sub
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/19/.git/
ok 56 - #19: setup
expecting success of 1510.57 '#19: explicit GIT_WORK_TREE and GIT_DIR at toplevel':
try_case $N "$here/$N" .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)"
ok 57 - #19: explicit GIT_WORK_TREE and GIT_DIR at toplevel
expecting success of 1510.58 '#19: explicit GIT_WORK_TREE and GIT_DIR in subdir':
try_case $N/sub/sub "$here/$N" ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/
ok 58 - #19: explicit GIT_WORK_TREE and GIT_DIR in subdir
expecting success of 1510.59 '#19: explicit GIT_WORK_TREE from parent of worktree':
try_case $N "$here/$N/wt" .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)"
ok 59 - #19: explicit GIT_WORK_TREE from parent of worktree
expecting success of 1510.60 '#19: explicit GIT_WORK_TREE from nephew of worktree':
try_case $N/sub/sub "$here/$N/wt" ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)"
ok 60 - #19: explicit GIT_WORK_TREE from nephew of worktree
expecting success of 1510.61 '#19: chdir_to_toplevel uses worktree, not git dir':
try_case $N "$here" .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. "$here/$N/.git" \
"$absgit" "$here" "$here" $N/ &&
try_case $N "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/
ok 61 - #19: chdir_to_toplevel uses worktree, not git dir
expecting success of 1510.62 '#19: chdir_to_toplevel uses worktree (from subdir)':
try_case $N/sub/sub "$here" ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../.. ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../../ "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/
ok 62 - #19: chdir_to_toplevel uses worktree (from subdir)
expecting success of 1510.63 '#20a: core.worktree without GIT_DIR accepted (inside .git)':
# Unlike case #16a.
setup_repo 20a "$here/20a" "" unset &&
mkdir -p 20a/.git/wt/sub &&
try_case 20a/.git unset unset \
"$here/20a/.git" "$here/20a" "$here/20a" .git/ 2>message &&
try_case 20a/.git/wt unset unset \
"$here/20a/.git" "$here/20a" "$here/20a" .git/wt/ &&
try_case 20a/.git/wt/sub unset unset \
"$here/20a/.git" "$here/20a" "$here/20a" .git/wt/sub/ &&
test_must_be_empty message
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/20a/.git/
ok 63 - #20a: core.worktree without GIT_DIR accepted (inside .git)
expecting success of 1510.64 '#20b/c: core.worktree and core.bare conflict':
setup_repo 20b non-existent "" true &&
mkdir -p 20b/.git/wt/sub &&
(
cd 20b/.git &&
test_must_fail git status >/dev/null
) 2>message &&
grep "core.bare and core.worktree" message
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/20b/.git/
warning: core.bare and core.worktree do not make sense
ok 64 - #20b/c: core.worktree and core.bare conflict
expecting success of 1510.65 '#20d: core.worktree and core.bare OK when working tree not needed':
setup_repo 20d non-existent "" true &&
mkdir -p 20d/.git/wt/sub &&
(
cd 20d/.git &&
git config foo.bar value
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/20d/.git/
warning: core.bare and core.worktree do not make sense
ok 65 - #20d: core.worktree and core.bare OK when working tree not needed
expecting success of 1510.66 '#21: setup, core.worktree warns before overriding core.bare':
setup_repo 21 non-existent "" unset &&
mkdir -p 21/.git/wt/sub &&
(
cd 21/.git &&
GIT_WORK_TREE="$here/21" &&
export GIT_WORK_TREE &&
git status >/dev/null
) 2>message &&
test_must_be_empty message
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/21/.git/
ok 66 - #21: setup, core.worktree warns before overriding core.bare
expecting success of 1510.67 '#21: explicit GIT_WORK_TREE and GIT_DIR at toplevel':
try_case $N "$here/$N" .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)"
ok 67 - #21: explicit GIT_WORK_TREE and GIT_DIR at toplevel
expecting success of 1510.68 '#21: explicit GIT_WORK_TREE and GIT_DIR in subdir':
try_case $N/sub/sub "$here/$N" ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/
ok 68 - #21: explicit GIT_WORK_TREE and GIT_DIR in subdir
expecting success of 1510.69 '#21: explicit GIT_WORK_TREE from parent of worktree':
try_case $N "$here/$N/wt" .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)"
ok 69 - #21: explicit GIT_WORK_TREE from parent of worktree
expecting success of 1510.70 '#21: explicit GIT_WORK_TREE from nephew of worktree':
try_case $N/sub/sub "$here/$N/wt" ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)"
ok 70 - #21: explicit GIT_WORK_TREE from nephew of worktree
expecting success of 1510.71 '#21: chdir_to_toplevel uses worktree, not git dir':
try_case $N "$here" .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. "$here/$N/.git" \
"$absgit" "$here" "$here" $N/ &&
try_case $N "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/
ok 71 - #21: chdir_to_toplevel uses worktree, not git dir
expecting success of 1510.72 '#21: chdir_to_toplevel uses worktree (from subdir)':
try_case $N/sub/sub "$here" ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../.. ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../../ "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/
ok 72 - #21: chdir_to_toplevel uses worktree (from subdir)
expecting success of 1510.73 '#22a: core.worktree = GIT_DIR = .git dir':
# like case #6.
setup_repo 22a "$here/22a/.git" "" unset &&
setup_repo 22ab . "" unset &&
mkdir -p 22a/.git/sub 22a/sub &&
mkdir -p 22ab/.git/sub 22ab/sub &&
try_case 22a/.git unset . \
. "$here/22a/.git" "$here/22a/.git" "(null)" &&
try_case 22a/.git unset "$here/22a/.git" \
"$here/22a/.git" "$here/22a/.git" "$here/22a/.git" "(null)" &&
try_case 22a/.git/sub unset .. \
"$here/22a/.git" "$here/22a/.git" "$here/22a/.git" sub/ &&
try_case 22a/.git/sub unset "$here/22a/.git" \
"$here/22a/.git" "$here/22a/.git" "$here/22a/.git" sub/ &&
try_case 22ab/.git unset . \
. "$here/22ab/.git" "$here/22ab/.git" "(null)" &&
try_case 22ab/.git unset "$here/22ab/.git" \
"$here/22ab/.git" "$here/22ab/.git" "$here/22ab/.git" "(null)" &&
try_case 22ab/.git/sub unset .. \
"$here/22ab/.git" "$here/22ab/.git" "$here/22ab/.git" sub/ &&
try_case 22ab/.git unset "$here/22ab/.git" \
"$here/22ab/.git" "$here/22ab/.git" "$here/22ab/.git" "(null)"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/22a/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/22ab/.git/
ok 73 - #22a: core.worktree = GIT_DIR = .git dir
expecting success of 1510.74 '#22b: core.worktree child of .git, GIT_DIR=.git':
setup_repo 22b "$here/22b/.git/wt" "" unset &&
setup_repo 22bb wt "" unset &&
mkdir -p 22b/.git/sub 22b/sub 22b/.git/wt/sub 22b/wt/sub &&
mkdir -p 22bb/.git/sub 22bb/sub 22bb/.git/wt 22bb/wt &&
try_case 22b/.git unset . \
. "$here/22b/.git/wt" "$here/22b/.git" "(null)" &&
try_case 22b/.git unset "$here/22b/.git" \
"$here/22b/.git" "$here/22b/.git/wt" "$here/22b/.git" "(null)" &&
try_case 22b/.git/sub unset .. \
.. "$here/22b/.git/wt" "$here/22b/.git/sub" "(null)" &&
try_case 22b/.git/sub unset "$here/22b/.git" \
"$here/22b/.git" "$here/22b/.git/wt" "$here/22b/.git/sub" "(null)" &&
try_case 22bb/.git unset . \
. "$here/22bb/.git/wt" "$here/22bb/.git" "(null)" &&
try_case 22bb/.git unset "$here/22bb/.git" \
"$here/22bb/.git" "$here/22bb/.git/wt" "$here/22bb/.git" "(null)" &&
try_case 22bb/.git/sub unset .. \
.. "$here/22bb/.git/wt" "$here/22bb/.git/sub" "(null)" &&
try_case 22bb/.git/sub unset "$here/22bb/.git" \
"$here/22bb/.git" "$here/22bb/.git/wt" "$here/22bb/.git/sub" "(null)"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/22b/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/22bb/.git/
ok 74 - #22b: core.worktree child of .git, GIT_DIR=.git
expecting success of 1510.75 '#22c: core.worktree = .git/.., GIT_DIR=.git':
setup_repo 22c "$here/22c" "" unset &&
setup_repo 22cb .. "" unset &&
mkdir -p 22c/.git/sub 22c/sub &&
mkdir -p 22cb/.git/sub 22cb/sub &&
try_case 22c/.git unset . \
"$here/22c/.git" "$here/22c" "$here/22c" .git/ &&
try_case 22c/.git unset "$here/22c/.git" \
"$here/22c/.git" "$here/22c" "$here/22c" .git/ &&
try_case 22c/.git/sub unset .. \
"$here/22c/.git" "$here/22c" "$here/22c" .git/sub/ &&
try_case 22c/.git/sub unset "$here/22c/.git" \
"$here/22c/.git" "$here/22c" "$here/22c" .git/sub/ &&
try_case 22cb/.git unset . \
"$here/22cb/.git" "$here/22cb" "$here/22cb" .git/ &&
try_case 22cb/.git unset "$here/22cb/.git" \
"$here/22cb/.git" "$here/22cb" "$here/22cb" .git/ &&
try_case 22cb/.git/sub unset .. \
"$here/22cb/.git" "$here/22cb" "$here/22cb" .git/sub/ &&
try_case 22cb/.git/sub unset "$here/22cb/.git" \
"$here/22cb/.git" "$here/22cb" "$here/22cb" .git/sub/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/22c/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/22cb/.git/
ok 75 - #22c: core.worktree = .git/.., GIT_DIR=.git
expecting success of 1510.76 '#22.2: core.worktree and core.bare conflict':
setup_repo 22 "$here/22" "" true &&
(
cd 22/.git &&
GIT_DIR=. &&
export GIT_DIR &&
test_must_fail git status 2>result
) &&
(
cd 22 &&
GIT_DIR=.git &&
export GIT_DIR &&
test_must_fail git status 2>result
) &&
grep "core.bare and core.worktree" 22/.git/result &&
grep "core.bare and core.worktree" 22/result
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/22/.git/
warning: core.bare and core.worktree do not make sense
warning: core.bare and core.worktree do not make sense
ok 76 - #22.2: core.worktree and core.bare conflict
expecting success of 1510.77 '#23: setup':
setup_repo 23 non-existent "" true &&
mkdir -p 23/sub/sub 23/wt/sub
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/23/.git/
ok 77 - #23: setup
expecting success of 1510.78 '#23: explicit GIT_WORK_TREE and GIT_DIR at toplevel':
try_case $N "$here/$N" .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)"
ok 78 - #23: explicit GIT_WORK_TREE and GIT_DIR at toplevel
expecting success of 1510.79 '#23: explicit GIT_WORK_TREE and GIT_DIR in subdir':
try_case $N/sub/sub "$here/$N" ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/
ok 79 - #23: explicit GIT_WORK_TREE and GIT_DIR in subdir
expecting success of 1510.80 '#23: explicit GIT_WORK_TREE from parent of worktree':
try_case $N "$here/$N/wt" .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)"
ok 80 - #23: explicit GIT_WORK_TREE from parent of worktree
expecting success of 1510.81 '#23: explicit GIT_WORK_TREE from nephew of worktree':
try_case $N/sub/sub "$here/$N/wt" ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)"
ok 81 - #23: explicit GIT_WORK_TREE from nephew of worktree
expecting success of 1510.82 '#23: chdir_to_toplevel uses worktree, not git dir':
try_case $N "$here" .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. "$here/$N/.git" \
"$absgit" "$here" "$here" $N/ &&
try_case $N "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/
ok 82 - #23: chdir_to_toplevel uses worktree, not git dir
expecting success of 1510.83 '#23: chdir_to_toplevel uses worktree (from subdir)':
try_case $N/sub/sub "$here" ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../.. ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../../ "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/
ok 83 - #23: chdir_to_toplevel uses worktree (from subdir)
expecting success of 1510.84 '#24: bare repo has no worktree (gitfile case)':
try_repo 24 unset unset unset gitfile true \
"$here/24.git" "(null)" "$here/24" "(null)" \
"$here/24.git" "(null)" "$here/24/sub" "(null)"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/24/.git/
ok 84 - #24: bare repo has no worktree (gitfile case)
expecting success of 1510.85 '#25: GIT_WORK_TREE accepted if GIT_DIR unset (bare gitfile case)':
try_repo 25 "$here/25" unset unset gitfile true \
"$here/25.git" "$here/25" "$here/25" "(null)" \
"$here/25.git" "$here/25" "$here/25" "sub/" 2>message &&
test_must_be_empty message
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/25/.git/
ok 85 - #25: GIT_WORK_TREE accepted if GIT_DIR unset (bare gitfile case)
expecting success of 1510.86 '#26: bare repo has no worktree (GIT_DIR -> gitfile case)':
try_repo 26 unset "$here/26/.git" unset gitfile true \
"$here/26.git" "(null)" "$here/26" "(null)" \
"$here/26.git" "(null)" "$here/26/sub" "(null)" &&
try_repo 26b unset .git unset gitfile true \
"$here/26b.git" "(null)" "$here/26b" "(null)" \
"$here/26b.git" "(null)" "$here/26b/sub" "(null)"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/26/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/26b/.git/
ok 86 - #26: bare repo has no worktree (GIT_DIR -> gitfile case)
expecting success of 1510.87 '#27: setup':
setup_repo 27 unset gitfile true &&
mkdir -p 27/sub/sub 27/wt/sub
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/27/.git/
ok 87 - #27: setup
expecting success of 1510.88 '#27: explicit GIT_WORK_TREE and GIT_DIR at toplevel':
try_case $N "$here/$N" .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)"
ok 88 - #27: explicit GIT_WORK_TREE and GIT_DIR at toplevel
expecting success of 1510.89 '#27: explicit GIT_WORK_TREE and GIT_DIR in subdir':
try_case $N/sub/sub "$here/$N" ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/
ok 89 - #27: explicit GIT_WORK_TREE and GIT_DIR in subdir
expecting success of 1510.90 '#27: explicit GIT_WORK_TREE from parent of worktree':
try_case $N "$here/$N/wt" .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)"
ok 90 - #27: explicit GIT_WORK_TREE from parent of worktree
expecting success of 1510.91 '#27: explicit GIT_WORK_TREE from nephew of worktree':
try_case $N/sub/sub "$here/$N/wt" ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)"
ok 91 - #27: explicit GIT_WORK_TREE from nephew of worktree
expecting success of 1510.92 '#27: chdir_to_toplevel uses worktree, not git dir':
try_case $N "$here" .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. "$here/$N/.git" \
"$absgit" "$here" "$here" $N/ &&
try_case $N "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/
ok 92 - #27: chdir_to_toplevel uses worktree, not git dir
expecting success of 1510.93 '#27: chdir_to_toplevel uses worktree (from subdir)':
try_case $N/sub/sub "$here" ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../.. ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../../ "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/
ok 93 - #27: chdir_to_toplevel uses worktree (from subdir)
expecting success of 1510.94 '#28: core.worktree and core.bare conflict (gitfile case)':
setup_repo 28 "$here/28" gitfile true &&
(
cd 28 &&
test_must_fail git status
) 2>message &&
grep "core.bare and core.worktree" message
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/28/.git/
warning: core.bare and core.worktree do not make sense
ok 94 - #28: core.worktree and core.bare conflict (gitfile case)
expecting success of 1510.95 '#29: setup':
setup_repo 29 non-existent gitfile true &&
mkdir -p 29/sub/sub 29/wt/sub &&
(
cd 29 &&
GIT_WORK_TREE="$here/29" &&
export GIT_WORK_TREE &&
git status
) 2>message &&
test_must_be_empty message
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/29/.git/
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
ok 95 - #29: setup
expecting success of 1510.96 '#29: explicit GIT_WORK_TREE and GIT_DIR at toplevel':
try_case $N "$here/$N" .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)"
ok 96 - #29: explicit GIT_WORK_TREE and GIT_DIR at toplevel
expecting success of 1510.97 '#29: explicit GIT_WORK_TREE and GIT_DIR in subdir':
try_case $N/sub/sub "$here/$N" ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/
ok 97 - #29: explicit GIT_WORK_TREE and GIT_DIR in subdir
expecting success of 1510.98 '#29: explicit GIT_WORK_TREE from parent of worktree':
try_case $N "$here/$N/wt" .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)"
ok 98 - #29: explicit GIT_WORK_TREE from parent of worktree
expecting success of 1510.99 '#29: explicit GIT_WORK_TREE from nephew of worktree':
try_case $N/sub/sub "$here/$N/wt" ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)"
ok 99 - #29: explicit GIT_WORK_TREE from nephew of worktree
expecting success of 1510.100 '#29: chdir_to_toplevel uses worktree, not git dir':
try_case $N "$here" .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. "$here/$N/.git" \
"$absgit" "$here" "$here" $N/ &&
try_case $N "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/
ok 100 - #29: chdir_to_toplevel uses worktree, not git dir
expecting success of 1510.101 '#29: chdir_to_toplevel uses worktree (from subdir)':
try_case $N/sub/sub "$here" ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../.. ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../../ "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/
ok 101 - #29: chdir_to_toplevel uses worktree (from subdir)
expecting success of 1510.102 '#30: core.worktree and core.bare conflict (gitfile version)':
# Just like case #22.
setup_repo 30 "$here/30" gitfile true &&
(
cd 30 &&
test_must_fail env GIT_DIR=.git git status 2>result
) &&
grep "core.bare and core.worktree" 30/result
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/30/.git/
warning: core.bare and core.worktree do not make sense
ok 102 - #30: core.worktree and core.bare conflict (gitfile version)
expecting success of 1510.103 '#31: setup':
setup_repo 31 non-existent gitfile true &&
mkdir -p 31/sub/sub 31/wt/sub
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1510-repo-setup/31/.git/
ok 103 - #31: setup
expecting success of 1510.104 '#31: explicit GIT_WORK_TREE and GIT_DIR at toplevel':
try_case $N "$here/$N" .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . .git \
"$dotgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)" &&
try_case $N . "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" "(null)"
ok 104 - #31: explicit GIT_WORK_TREE and GIT_DIR at toplevel
expecting success of 1510.105 '#31: explicit GIT_WORK_TREE and GIT_DIR in subdir':
try_case $N/sub/sub "$here/$N" ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. ../../.git \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub "$here/$N" "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/ &&
try_case $N/sub/sub ../.. "$here/$N/.git" \
"$absgit" "$here/$N" "$here/$N" sub/sub/
ok 105 - #31: explicit GIT_WORK_TREE and GIT_DIR in subdir
expecting success of 1510.106 '#31: explicit GIT_WORK_TREE from parent of worktree':
try_case $N "$here/$N/wt" .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt .git \
"$dotgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)" &&
try_case $N "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N" "(null)"
ok 106 - #31: explicit GIT_WORK_TREE from parent of worktree
expecting success of 1510.107 '#31: explicit GIT_WORK_TREE from nephew of worktree':
try_case $N/sub/sub "$here/$N/wt" ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt ../../.git \
"$dotdotgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub ../../wt "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)" &&
try_case $N/sub/sub "$here/$N/wt" "$here/$N/.git" \
"$absgit" "$here/$N/wt" "$here/$N/sub/sub" "(null)"
ok 107 - #31: explicit GIT_WORK_TREE from nephew of worktree
expecting success of 1510.108 '#31: chdir_to_toplevel uses worktree, not git dir':
try_case $N "$here" .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. .git \
"$absgit" "$here" "$here" $N/ &&
try_case $N .. "$here/$N/.git" \
"$absgit" "$here" "$here" $N/ &&
try_case $N "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/
ok 108 - #31: chdir_to_toplevel uses worktree, not git dir
expecting success of 1510.109 '#31: chdir_to_toplevel uses worktree (from subdir)':
try_case $N/sub/sub "$here" ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../.. ../../.git \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub ../../../ "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/ &&
try_case $N/sub/sub "$here" "$here/$N/.git" \
"$absgit" "$here" "$here" $N/sub/sub/
ok 109 - #31: chdir_to_toplevel uses worktree (from subdir)
# passed all 109 test(s)
1..109
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2005-checkout-index-symlinks.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2004-checkout-cache-temp.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2004-checkout-cache-temp/.git/
expecting success of 2004.1 'setup':
mkdir asubdir &&
echo tree1path0 >path0 &&
echo tree1path1 >path1 &&
echo tree1path3 >path3 &&
echo tree1path4 >path4 &&
echo tree1asubdir/path5 >asubdir/path5 &&
git update-index --add path0 path1 path3 path4 asubdir/path5 &&
t1=$(git write-tree) &&
rm -f path* .merge_* actual .git/index &&
echo tree2path0 >path0 &&
echo tree2path1 >path1 &&
echo tree2path2 >path2 &&
echo tree2path4 >path4 &&
git update-index --add path0 path1 path2 path4 &&
t2=$(git write-tree) &&
rm -f path* .merge_* actual .git/index &&
echo tree2path0 >path0 &&
echo tree3path1 >path1 &&
echo tree3path2 >path2 &&
echo tree3path3 >path3 &&
git update-index --add path0 path1 path2 path3 &&
t3=$(git write-tree)
ok 1 - setup
expecting success of 2004.2 'checkout one stage 0 to temporary file':
rm -f path* .merge_* actual .git/index &&
git read-tree $t1 &&
git checkout-index --temp -- path1 >actual &&
test_line_count = 1 actual &&
test $(cut "-d " -f2 actual) = path1 &&
p=$(cut "-d " -f1 actual) &&
test -f $p &&
test $(cat $p) = tree1path1
ok 2 - checkout one stage 0 to temporary file
expecting success of 2004.3 'checkout all stage 0 to temporary files':
rm -f path* .merge_* actual .git/index &&
git read-tree $t1 &&
git checkout-index -a --temp >actual &&
test_line_count = 5 actual &&
for f in path0 path1 path3 path4 asubdir/path5
do
test $(grep $f actual | cut "-d " -f2) = $f &&
p=$(grep $f actual | cut "-d " -f1) &&
test -f $p &&
test $(cat $p) = tree1$f || return 1
done
ok 3 - checkout all stage 0 to temporary files
expecting success of 2004.4 'setup 3-way merge':
rm -f path* .merge_* actual .git/index &&
git read-tree -m $t1 $t2 $t3
ok 4 - setup 3-way merge
expecting success of 2004.5 'checkout one stage 2 to temporary file':
rm -f path* .merge_* actual &&
git checkout-index --stage=2 --temp -- path1 >actual &&
test_line_count = 1 actual &&
test $(cut "-d " -f2 actual) = path1 &&
p=$(cut "-d " -f1 actual) &&
test -f $p &&
test $(cat $p) = tree2path1
ok 5 - checkout one stage 2 to temporary file
expecting success of 2004.6 'checkout all stage 2 to temporary files':
rm -f path* .merge_* actual &&
git checkout-index --all --stage=2 --temp >actual &&
test_line_count = 3 actual &&
for f in path1 path2 path4
do
test $(grep $f actual | cut "-d " -f2) = $f &&
p=$(grep $f actual | cut "-d " -f1) &&
test -f $p &&
test $(cat $p) = tree2$f || return 1
done
ok 6 - checkout all stage 2 to temporary files
expecting success of 2004.7 'checkout all stages of unknown path':
rm -f path* .merge_* actual &&
test_must_fail git checkout-index --stage=all --temp \
-- does-not-exist 2>stderr &&
test_i18ngrep not.in.the.cache stderr
git checkout-index: does-not-exist is not in the cache
ok 7 - checkout all stages of unknown path
expecting success of 2004.8 'checkout all stages/one file to nothing':
rm -f path* .merge_* actual &&
git checkout-index --stage=all --temp -- path0 >actual 2>stderr &&
test_must_be_empty stderr &&
test_line_count = 0 actual
ok 8 - checkout all stages/one file to nothing
expecting success of 2004.9 'checkout all stages/one file to temporary files':
rm -f path* .merge_* actual &&
git checkout-index --stage=all --temp -- path1 >actual &&
test_line_count = 1 actual &&
test $(cut "-d " -f2 actual) = path1 &&
cut "-d " -f1 actual | (read s1 s2 s3 &&
test -f $s1 &&
test -f $s2 &&
test -f $s3 &&
test $(cat $s1) = tree1path1 &&
test $(cat $s2) = tree2path1 &&
test $(cat $s3) = tree3path1)
ok 9 - checkout all stages/one file to temporary files
expecting success of 2004.10 'checkout some stages/one file to temporary files':
rm -f path* .merge_* actual &&
git checkout-index --stage=all --temp -- path2 >actual &&
test_line_count = 1 actual &&
test $(cut "-d " -f2 actual) = path2 &&
cut "-d " -f1 actual | (read s1 s2 s3 &&
test $s1 = . &&
test -f $s2 &&
test -f $s3 &&
test $(cat $s2) = tree2path2 &&
test $(cat $s3) = tree3path2)
ok 10 - checkout some stages/one file to temporary files
expecting success of 2004.11 'checkout all stages/all files to temporary files':
rm -f path* .merge_* actual &&
git checkout-index -a --stage=all --temp >actual &&
test_line_count = 5 actual
ok 11 - checkout all stages/all files to temporary files
expecting success of 2004.12 '-- path0: no entry':
test x$(grep path0 actual | cut "-d " -f2) = x
ok 12 - -- path0: no entry
expecting success of 2004.13 '-- path1: all 3 stages':
test $(grep path1 actual | cut "-d " -f2) = path1 &&
grep path1 actual | cut "-d " -f1 | (read s1 s2 s3 &&
test -f $s1 &&
test -f $s2 &&
test -f $s3 &&
test $(cat $s1) = tree1path1 &&
test $(cat $s2) = tree2path1 &&
test $(cat $s3) = tree3path1)
ok 13 - -- path1: all 3 stages
expecting success of 2004.14 '-- path2: no stage 1, have stage 2 and 3':
test $(grep path2 actual | cut "-d " -f2) = path2 &&
grep path2 actual | cut "-d " -f1 | (read s1 s2 s3 &&
test $s1 = . &&
test -f $s2 &&
test -f $s3 &&
test $(cat $s2) = tree2path2 &&
test $(cat $s3) = tree3path2)
ok 14 - -- path2: no stage 1, have stage 2 and 3
expecting success of 2004.15 '-- path3: no stage 2, have stage 1 and 3':
test $(grep path3 actual | cut "-d " -f2) = path3 &&
grep path3 actual | cut "-d " -f1 | (read s1 s2 s3 &&
test -f $s1 &&
test $s2 = . &&
test -f $s3 &&
test $(cat $s1) = tree1path3 &&
test $(cat $s3) = tree3path3)
ok 15 - -- path3: no stage 2, have stage 1 and 3
expecting success of 2004.16 '-- path4: no stage 3, have stage 1 and 3':
test $(grep path4 actual | cut "-d " -f2) = path4 &&
grep path4 actual | cut "-d " -f1 | (read s1 s2 s3 &&
test -f $s1 &&
test -f $s2 &&
test $s3 = . &&
test $(cat $s1) = tree1path4 &&
test $(cat $s2) = tree2path4)
ok 16 - -- path4: no stage 3, have stage 1 and 3
expecting success of 2004.17 '-- asubdir/path5: no stage 2 and 3 have stage 1':
test $(grep asubdir/path5 actual | cut "-d " -f2) = asubdir/path5 &&
grep asubdir/path5 actual | cut "-d " -f1 | (read s1 s2 s3 &&
test -f $s1 &&
test $s2 = . &&
test $s3 = . &&
test $(cat $s1) = tree1asubdir/path5)
ok 17 - -- asubdir/path5: no stage 2 and 3 have stage 1
expecting success of 2004.18 'checkout --temp within subdir':
(
cd asubdir &&
git checkout-index -a --stage=all >actual &&
test_line_count = 1 actual &&
test $(grep path5 actual | cut "-d " -f2) = path5 &&
grep path5 actual | cut "-d " -f1 | (read s1 s2 s3 &&
test -f ../$s1 &&
test $s2 = . &&
test $s3 = . &&
test $(cat ../$s1) = tree1asubdir/path5)
)
ok 18 - checkout --temp within subdir
expecting success of 2004.19 'checkout --temp symlink':
rm -f path* .merge_* actual .git/index &&
test_ln_s_add path7 path6 &&
git checkout-index --temp -a >actual &&
test_line_count = 1 actual &&
test $(cut "-d " -f2 actual) = path6 &&
p=$(cut "-d " -f1 actual) &&
test -f $p &&
test $(cat $p) = path7
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 19 - checkout --temp symlink
expecting success of 2004.20 'emit well-formed relative path':
rm -f path* .merge_* actual .git/index &&
>path0123456789 &&
git update-index --add path0123456789 &&
(
cd asubdir &&
git checkout-index --temp -- ../path0123456789 >actual &&
test_line_count = 1 actual &&
test $(cut "-d " -f2 actual) = ../path0123456789
)
ok 20 - emit well-formed relative path
# passed all 20 test(s)
1..20
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2006-checkout-index-basic.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2006-checkout-index-basic/.git/
expecting success of 2006.1 'checkout-index --gobbledegook':
test_expect_code 129 git checkout-index --gobbledegook 2>err &&
test_i18ngrep "[Uu]sage" err
usage: git checkout-index [<options>] [--] [<file>...]
ok 1 - checkout-index --gobbledegook
expecting success of 2006.2 'checkout-index -h in broken repository':
mkdir broken &&
(
cd broken &&
git init &&
>.git/index &&
test_expect_code 129 git checkout-index -h >usage 2>&1
) &&
test_i18ngrep "[Uu]sage" broken/usage
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2006-checkout-index-basic/broken/.git/
usage: git checkout-index [<options>] [--] [<file>...]
ok 2 - checkout-index -h in broken repository
expecting success of 2006.3 'checkout-index reports errors (cmdline)':
test_must_fail git checkout-index -- does-not-exist 2>stderr &&
test_i18ngrep not.in.the.cache stderr
git checkout-index: does-not-exist is not in the cache
ok 3 - checkout-index reports errors (cmdline)
expecting success of 2006.4 'checkout-index reports errors (stdin)':
echo does-not-exist |
test_must_fail git checkout-index --stdin 2>stderr &&
test_i18ngrep not.in.the.cache stderr
git checkout-index: does-not-exist is not in the cache
ok 4 - checkout-index reports errors (stdin)
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
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
ok 5 # skip checkout-index with case-collision don't write to the wrong place (missing CASE_INSENSITIVE_FS of SYMLINKS,CASE_INSENSITIVE_FS)
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
ok 6 # skip checkout-index with utf-8-collision don't write to the wrong place (missing UTF8_NFD_TO_NFC of SYMLINKS,UTF8_NFD_TO_NFC)
expecting success of 2006.7 'checkout-index --temp correctly reports error on missing blobs':
test_when_finished git reset --hard &&
missing_blob=$(echo "no such blob here" | git hash-object --stdin) &&
cat >objs <<-EOF &&
100644 $missing_blob file
120000 $missing_blob symlink
EOF
git update-index --index-info <objs &&
test_must_fail git checkout-index --temp symlink file 2>stderr &&
test_i18ngrep "unable to read sha1 file of file ($missing_blob)" stderr &&
test_i18ngrep "unable to read sha1 file of symlink ($missing_blob)" stderr
.merge_file_c1Snjq file
error: unable to read sha1 file of file (3685f0bc3974902b137f7dc59ac799c006cdec92)
error: unable to read sha1 file of symlink (3685f0bc3974902b137f7dc59ac799c006cdec92)
ok 7 - checkout-index --temp correctly reports error on missing blobs
expecting success of 2006.8 'checkout-index --temp correctly reports error for submodules':
git init sub &&
test_commit -C sub file &&
git submodule add ./sub &&
git commit -m sub &&
test_must_fail git checkout-index --temp sub 2>stderr &&
test_i18ngrep "cannot create temporary submodule sub" stderr
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2006-checkout-index-basic/sub/.git/
[master (root-commit) 4c1911f] file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file.t
Adding existing repo at 'sub' to the index
[master (root-commit) c4df02a] sub
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 sub
error: cannot create temporary submodule sub
ok 8 - checkout-index --temp correctly reports error for submodules
# passed all 8 test(s)
1..8
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2007-checkout-symlink.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2007-checkout-symlink/.git/
expecting success of 2007.1 'setup':
mkdir frotz &&
echo hello >frotz/filfre &&
git add frotz/filfre &&
test_tick &&
git commit -m "main has file frotz/filfre" &&
git branch side &&
echo goodbye >nitfol &&
git add nitfol &&
test_tick &&
git commit -m "main adds file nitfol" &&
git checkout side &&
git rm --cached frotz/filfre &&
mv frotz xyzzy &&
test_ln_s_add xyzzy frotz &&
git add xyzzy/filfre &&
test_tick &&
git commit -m "side moves frotz/ to xyzzy/ and adds frotz->xyzzy/"
[main (root-commit) 608bc3a] main has file frotz/filfre
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 frotz/filfre
[main f539081] main adds file nitfol
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 nitfol
Switched to branch 'side'
rm 'frotz/filfre'
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
[side dc669bf] side moves frotz/ to xyzzy/ and adds frotz->xyzzy/
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+)
create mode 120000 frotz
rename {frotz => xyzzy}/filfre (100%)
ok 1 - setup
expecting success of 2007.2 'switch from symlink to dir':
git checkout main
Switched to branch 'main'
ok 2 - switch from symlink to dir
expecting success of 2007.3 'Remove temporary directories & switch to main':
rm -fr frotz xyzzy nitfol &&
git checkout -f main
Already on 'main'
ok 3 - Remove temporary directories & switch to main
expecting success of 2007.4 'switch from dir to symlink':
git checkout side
Switched to branch 'side'
ok 4 - switch from dir to symlink
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2008-checkout-subdir.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2008-checkout-subdir/.git/
expecting success of 2008.1 'setup':
echo "base" > file0 &&
git add file0 &&
mkdir dir1 &&
echo "hello" > dir1/file1 &&
git add dir1/file1 &&
mkdir dir2 &&
echo "bonjour" > dir2/file2 &&
git add dir2/file2 &&
test_tick &&
git commit -m "populate tree"
[master (root-commit) 15793b3] populate tree
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
create mode 100644 dir1/file1
create mode 100644 dir2/file2
create mode 100644 file0
ok 1 - setup
expecting success of 2008.2 'remove and restore with relative path':
(
cd dir1 &&
rm ../file0 &&
git checkout HEAD -- ../file0 &&
test "base" = "$(cat ../file0)" &&
rm ../dir2/file2 &&
git checkout HEAD -- ../dir2/file2 &&
test "bonjour" = "$(cat ../dir2/file2)" &&
rm ../file0 ./file1 &&
git checkout HEAD -- .. &&
test "base" = "$(cat ../file0)" &&
test "hello" = "$(cat file1)"
)
ok 2 - remove and restore with relative path
expecting success of 2008.3 'checkout with empty prefix':
rm file0 &&
git checkout HEAD -- file0 &&
test "base" = "$(cat file0)"
ok 3 - checkout with empty prefix
expecting success of 2008.4 'checkout with simple prefix':
rm dir1/file1 &&
git checkout HEAD -- dir1 &&
test "hello" = "$(cat dir1/file1)" &&
rm dir1/file1 &&
git checkout HEAD -- dir1/file1 &&
test "hello" = "$(cat dir1/file1)"
ok 4 - checkout with simple prefix
expecting success of 2008.5 'checkout with complex relative path':
(
cd dir1 &&
rm file1 &&
git checkout HEAD -- ../dir1/../dir1/file1 &&
test "hello" = "$(cat file1)"
)
ok 5 - checkout with complex relative path
expecting success of 2008.6 'relative path outside tree should fail': test_must_fail git checkout HEAD -- ../../Makefile
fatal: ../../Makefile: '../../Makefile' is outside repository at '/<<PKGBUILDDIR>>/t/trash directory.t2008-checkout-subdir'
ok 6 - relative path outside tree should fail
expecting success of 2008.7 'incorrect relative path to file should fail (1)': test_must_fail git checkout HEAD -- ../file0
fatal: ../file0: '../file0' is outside repository at '/<<PKGBUILDDIR>>/t/trash directory.t2008-checkout-subdir'
ok 7 - incorrect relative path to file should fail (1)
expecting success of 2008.8 'incorrect relative path should fail (2)': ( cd dir1 && test_must_fail git checkout HEAD -- ./file0 )
error: pathspec './file0' did not match any file(s) known to git
ok 8 - incorrect relative path should fail (2)
expecting success of 2008.9 'incorrect relative path should fail (3)': ( cd dir1 && test_must_fail git checkout HEAD -- ../../file0 )
fatal: ../../file0: '../../file0' is outside repository at '/<<PKGBUILDDIR>>/t/trash directory.t2008-checkout-subdir'
ok 9 - incorrect relative path should fail (3)
# passed all 9 test(s)
1..9
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2009-checkout-statinfo.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2009-checkout-statinfo/.git/
expecting success of 2009.1 'setup':
echo hello >world &&
git update-index --add world &&
git commit -m initial &&
git branch side &&
echo goodbye >world &&
git update-index --add world &&
git commit -m second
[main (root-commit) b8cd0f7] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 world
[main 5892dcd] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup
expecting success of 2009.2 'branch switching':
git reset --hard &&
test "$(git diff-files --raw)" = "" &&
git checkout main &&
test "$(git diff-files --raw)" = "" &&
git checkout side &&
test "$(git diff-files --raw)" = "" &&
git checkout main &&
test "$(git diff-files --raw)" = ""
HEAD is now at 5892dcd second
Already on 'main'
Switched to branch 'side'
Switched to branch 'main'
ok 2 - branch switching
expecting success of 2009.3 'path checkout':
git reset --hard &&
test "$(git diff-files --raw)" = "" &&
git checkout main world &&
test "$(git diff-files --raw)" = "" &&
git checkout side world &&
test "$(git diff-files --raw)" = "" &&
git checkout main world &&
test "$(git diff-files --raw)" = ""
HEAD is now at 5892dcd second
Updated 0 paths from c356a2a
Updated 1 path from dbd05ee
Updated 1 path from c356a2a
ok 3 - path checkout
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2010-checkout-ambiguous.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2010-checkout-ambiguous/.git/
expecting success of 2010.1 'setup':
echo hello >world &&
echo hello >all &&
git add all world &&
git commit -m initial &&
git branch world
[main (root-commit) c5e2eee] initial
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 all
create mode 100644 world
ok 1 - setup
expecting success of 2010.2 'reference must be a tree':
test_must_fail git checkout $(git hash-object ./all) --
fatal: reference is not a tree: ce013625030ba8dba906f756967f9e9ca394464a
ok 2 - reference must be a tree
expecting success of 2010.3 'branch switching':
test "refs/heads/main" = "$(git symbolic-ref HEAD)" &&
git checkout world -- &&
test "refs/heads/world" = "$(git symbolic-ref HEAD)"
Switched to branch 'world'
ok 3 - branch switching
expecting success of 2010.4 'checkout world from the index':
echo bye > world &&
git checkout -- world &&
git diff --exit-code --quiet
ok 4 - checkout world from the index
expecting success of 2010.5 'non ambiguous call':
git checkout all
Updated 0 paths from the index
ok 5 - non ambiguous call
expecting success of 2010.6 'allow the most common case':
git checkout world &&
test "refs/heads/world" = "$(git symbolic-ref HEAD)"
Already on 'world'
ok 6 - allow the most common case
expecting success of 2010.7 'check ambiguity':
test_must_fail git checkout world all
fatal: ambiguous argument 'world': both revision and filename
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
ok 7 - check ambiguity
expecting success of 2010.8 'check ambiguity in subdir':
mkdir sub &&
# not ambiguous because sub/world does not exist
git -C sub checkout world ../all &&
echo hello >sub/world &&
# ambiguous because sub/world does exist
test_must_fail git -C sub checkout world ../all
Updated 0 paths from dd4e7a7
fatal: ambiguous argument 'world': both revision and filename
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
ok 8 - check ambiguity in subdir
expecting success of 2010.9 'disambiguate checking out from a tree-ish':
echo bye > world &&
git checkout world -- world &&
git diff --exit-code --quiet
ok 9 - disambiguate checking out from a tree-ish
expecting success of 2010.10 'accurate error message with more than one ref':
test_must_fail git checkout HEAD main -- 2>actual &&
test_i18ngrep 2 actual &&
test_i18ngrep "one reference expected, 2 given" actual
fatal: only one reference expected, 2 given.
fatal: only one reference expected, 2 given.
ok 10 - accurate error message with more than one ref
# passed all 10 test(s)
1..10
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2011-checkout-invalid-head.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2011-checkout-invalid-head/.git/
expecting success of 2011.1 'setup':
echo hello >world &&
git add world &&
git commit -m initial
[main (root-commit) b8cd0f7] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 world
ok 1 - setup
expecting success of 2011.2 'checkout should not start branch from a tree':
test_must_fail git checkout -b newbranch main^{tree}
fatal: Cannot switch branch to a non-commit 'main^{tree}'
ok 2 - checkout should not start branch from a tree
expecting success of 2011.3 'checkout main from invalid HEAD':
echo $ZERO_OID >.git/HEAD &&
git checkout main --
Switched to branch 'main'
ok 3 - checkout main from invalid HEAD
expecting success of 2011.4 'checkout notices failure to lock HEAD':
test_when_finished "rm -f .git/HEAD.lock" &&
>.git/HEAD.lock &&
test_must_fail git checkout -b other
error: Unable to create '/<<PKGBUILDDIR>>/t/trash directory.t2011-checkout-invalid-head/.git/HEAD.lock': File exists.
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.
fatal: unable to update HEAD
ok 4 - checkout notices failure to lock HEAD
expecting success of 2011.5 'create ref directory/file conflict scenario':
git update-ref refs/heads/outer/inner main &&
# do not rely on symbolic-ref to get a known state,
# as it may use the same code we are testing
reset_to_df () {
echo "ref: refs/heads/outer" >.git/HEAD
}
ok 5 - create ref directory/file conflict scenario
expecting success of 2011.6 'checkout away from d/f HEAD (unpacked, to branch)':
reset_to_df &&
git checkout main
Switched to branch 'main'
ok 6 - checkout away from d/f HEAD (unpacked, to branch)
expecting success of 2011.7 'checkout away from d/f HEAD (unpacked, to detached)':
reset_to_df &&
git checkout --detach main
HEAD is now at b8cd0f7 initial
ok 7 - checkout away from d/f HEAD (unpacked, to detached)
expecting success of 2011.8 'pack refs':
git pack-refs --all --prune
ok 8 - pack refs
expecting success of 2011.9 'checkout away from d/f HEAD (packed, to branch)':
reset_to_df &&
git checkout main
Switched to branch 'main'
ok 9 - checkout away from d/f HEAD (packed, to branch)
expecting success of 2011.10 'checkout away from d/f HEAD (packed, to detached)':
reset_to_df &&
git checkout --detach main
HEAD is now at b8cd0f7 initial
ok 10 - checkout away from d/f HEAD (packed, to detached)
# passed all 10 test(s)
1..10
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2012-checkout-last.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2012-checkout-last/.git/
expecting success of 2012.1 'setup':
test_commit initial world hello &&
git branch other &&
test_commit --append second world "hello again"
[main (root-commit) b77667e] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 world
[main 5146e8d] second
Author: A U Thor <author@example.com>
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_cmp_symbolic_HEAD_ref main
Switched to branch 'main'
ok 4 - "checkout -" switches back
expecting success of 2012.5 '"checkout -" switches forth':
git checkout - &&
test_cmp_symbolic_HEAD_ref 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 'b77667e36f2efc50d31c716f0d5e6db09fe4a8e9'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at b77667e initial
ok 6 - detach HEAD
expecting success of 2012.7 '"checkout -" attaches again':
git checkout - &&
test_cmp_symbolic_HEAD_ref other
Switched to branch 'other'
ok 7 - "checkout -" attaches again
expecting success of 2012.8 '"checkout -" detaches again':
git checkout - &&
git rev-parse other >expect &&
git rev-parse HEAD >actual &&
test_cmp expect actual &&
test_must_fail git symbolic-ref HEAD
Note: switching to 'b77667e36f2efc50d31c716f0d5e6db09fe4a8e9'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at b77667e 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 || return 1
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_cmp_symbolic_HEAD_ref 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_cmp_symbolic_HEAD_ref 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_cmp_symbolic_HEAD_ref 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_cmp_symbolic_HEAD_ref 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_cmp_symbolic_HEAD_ref 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 &&
test_commit --append third world "hello again"
Switched to a new branch 'another'
[another d04d7df] third
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 15 - merge base test setup
expecting success of 2012.16 'another...main':
git checkout another &&
git checkout another...main &&
git rev-parse --verify main^ >expect &&
git rev-parse --verify HEAD >actual &&
test_cmp expect actual
Already on 'another'
Note: switching to 'another...main'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at b77667e initial
ok 16 - another...main
expecting success of 2012.17 '...main':
git checkout another &&
git checkout ...main &&
git rev-parse --verify main^ >expect &&
git rev-parse --verify HEAD >actual &&
test_cmp expect actual
Previous HEAD position was b77667e initial
Switched to branch 'another'
Note: switching to '...main'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at b77667e initial
ok 17 - ...main
expecting success of 2012.18 'main...':
git checkout another &&
git checkout main... &&
git rev-parse --verify main^ >expect &&
git rev-parse --verify HEAD >actual &&
test_cmp expect actual
Previous HEAD position was b77667e initial
Switched to branch 'another'
Note: switching to 'main...'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at b77667e initial
ok 18 - main...
expecting success of 2012.19 '"checkout -" works after a rebase A':
git checkout main &&
git checkout other &&
git rebase main &&
git checkout - &&
test_cmp_symbolic_HEAD_ref main
Previous HEAD position was b77667e initial
Switched to branch 'main'
Switched to branch 'other'
Successfully rebased and updated refs/heads/other.
Switched to branch 'main'
ok 19 - "checkout -" works after a rebase A
expecting success of 2012.20 '"checkout -" works after a rebase A B':
git branch moodle main~1 &&
git checkout main &&
git checkout other &&
git rebase main moodle &&
git checkout - &&
test_cmp_symbolic_HEAD_ref main
Already on 'main'
Switched to branch 'other'
Successfully rebased and updated refs/heads/moodle.
Switched to branch 'main'
ok 20 - "checkout -" works after a rebase A B
expecting success of 2012.21 '"checkout -" works after a rebase -i A':
git checkout main &&
git checkout other &&
git rebase -i main &&
git checkout - &&
test_cmp_symbolic_HEAD_ref main
Already on 'main'
Switched to branch 'other'
Successfully rebased and updated refs/heads/other.
Switched to branch 'main'
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 main~1 &&
git checkout main &&
git checkout other &&
git rebase main foodle &&
git checkout - &&
test_cmp_symbolic_HEAD_ref main
Already on 'main'
Switched to branch 'other'
Successfully rebased and updated refs/heads/foodle.
Switched to branch 'main'
ok 22 - "checkout -" works after a rebase -i A B
# passed all 22 test(s)
1..22
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2014-checkout-switch.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <author@example.com>
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 <author@example.com>
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2015-checkout-unborn.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 main:origin
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2015-checkout-unborn/parent/.git/
[main (root-commit) 5d770fe] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
From parent
* [new branch] main -> 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 /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2016-checkout-patch.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2016-checkout-patch/.git/
expecting success of 2016.1 'setup':
mkdir dir &&
echo parent > dir/foo &&
echo dummy > bar &&
git add bar dir/foo &&
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) 758b165] initial
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 bar
create mode 100644 dir/foo
[master 3319288] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup
expecting success of 2016.2 'saying "n" does nothing':
set_and_save_state dir/foo work head &&
test_write_lines n n | git checkout -p &&
verify_saved_state bar &&
verify_saved_state dir/foo
diff --git a/bar b/bar
index 7780244..8c999e6 100644
--- a/bar
+++ b/bar
@@ -1 +1 @@
-bar_index
+bar_work
(1/1) Discard this hunk from worktree [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) Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 2 - saying "n" does nothing
expecting success of 2016.3 'git checkout -p':
test_write_lines n y | git checkout -p &&
verify_saved_state bar &&
verify_state dir/foo head head
diff --git a/bar b/bar
index 7780244..8c999e6 100644
--- a/bar
+++ b/bar
@@ -1 +1 @@
-bar_index
+bar_work
(1/1) Discard this hunk from worktree [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) Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 3 - git checkout -p
expecting success of 2016.4 'git checkout -p with staged changes':
set_state dir/foo work index &&
test_write_lines n y | git checkout -p &&
verify_saved_state bar &&
verify_state dir/foo index index
diff --git a/bar b/bar
index 7780244..8c999e6 100644
--- a/bar
+++ b/bar
@@ -1 +1 @@
-bar_index
+bar_work
(1/1) Discard this hunk from worktree [y,n,q,a,d,e,?]?
diff --git a/dir/foo b/dir/foo
index 9015a7a..b8f99f5 100644
--- a/dir/foo
+++ b/dir/foo
@@ -1 +1 @@
-index
+work
(1/1) Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 4 - git checkout -p with staged changes
expecting success of 2016.5 'git checkout -p HEAD with NO staged changes: abort':
set_and_save_state dir/foo work head &&
test_write_lines n y n | git checkout -p HEAD &&
verify_saved_state bar &&
verify_saved_state dir/foo
diff --git a/bar b/bar
index 421376d..8c999e6 100644
--- a/bar
+++ b/bar
@@ -1 +1 @@
-dummy
+bar_work
(1/1) Discard this hunk from index and worktree [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) Discard this hunk from index and worktree [y,n,q,a,d,e,?]? error: patch failed: dir/foo:1
error: dir/foo: patch does not apply
The selected hunks do not apply to the index!
Apply them to the worktree anyway? Nothing was applied.
ok 5 - git checkout -p HEAD with NO staged changes: abort
expecting success of 2016.6 'git checkout -p HEAD with NO staged changes: apply':
test_write_lines n y y | git checkout -p HEAD &&
verify_saved_state bar &&
verify_state dir/foo head head
diff --git a/bar b/bar
index 421376d..8c999e6 100644
--- a/bar
+++ b/bar
@@ -1 +1 @@
-dummy
+bar_work
(1/1) Discard this hunk from index and worktree [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) Discard this hunk from index and worktree [y,n,q,a,d,e,?]? error: patch failed: dir/foo:1
error: dir/foo: patch does not apply
The selected hunks do not apply to the index!
Apply them to the worktree anyway?
ok 6 - git checkout -p HEAD with NO staged changes: apply
expecting success of 2016.7 'git checkout -p HEAD with change already staged':
set_state dir/foo index index &&
# the third n is to get out in case it mistakenly does not apply
test_write_lines n y n | git checkout -p HEAD &&
verify_saved_state bar &&
verify_state dir/foo head head
diff --git a/bar b/bar
index 421376d..8c999e6 100644
--- a/bar
+++ b/bar
@@ -1 +1 @@
-dummy
+bar_work
(1/1) Discard this hunk from index and worktree [y,n,q,a,d,e,?]?
diff --git a/dir/foo b/dir/foo
index 564b12f..9015a7a 100644
--- a/dir/foo
+++ b/dir/foo
@@ -1 +1 @@
-head
+index
(1/1) Discard this hunk from index and worktree [y,n,q,a,d,e,?]?
ok 7 - git checkout -p HEAD with change already staged
expecting success of 2016.8 'git checkout -p HEAD^...':
# the third n is to get out in case it mistakenly does not apply
test_write_lines n y n | git checkout -p HEAD^... &&
verify_saved_state bar &&
verify_state dir/foo parent parent
diff --git b/bar a/bar
index 8c999e6..421376d 100644
--- b/bar
+++ a/bar
@@ -1 +1 @@
-bar_work
+dummy
(1/1) Apply this hunk to index and worktree [y,n,q,a,d,e,?]?
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 and worktree [y,n,q,a,d,e,?]?
ok 8 - git checkout -p HEAD^...
expecting success of 2016.9 'git checkout -p HEAD^':
# the third n is to get out in case it mistakenly does not apply
test_write_lines n y n | git checkout -p HEAD^ &&
verify_saved_state bar &&
verify_state dir/foo parent parent
diff --git b/bar a/bar
index 8c999e6..421376d 100644
--- b/bar
+++ a/bar
@@ -1 +1 @@
-bar_work
+dummy
(1/1) Apply this hunk to index and worktree [y,n,q,a,d,e,?]?
ok 9 - git checkout -p HEAD^
expecting success of 2016.10 'git checkout -p handles deletion':
set_state dir/foo work index &&
rm dir/foo &&
test_write_lines n y | git checkout -p &&
verify_saved_state bar &&
verify_state dir/foo index index
diff --git a/bar b/bar
index 7780244..8c999e6 100644
--- a/bar
+++ b/bar
@@ -1 +1 @@
-bar_index
+bar_work
(1/1) Discard this hunk from worktree [y,n,q,a,d,e,?]?
diff --git a/dir/foo b/dir/foo
deleted file mode 100644
index 9015a7a..0000000
--- a/dir/foo
+++ /dev/null
@@ -1 +0,0 @@
-index
(1/1) Discard deletion from worktree [y,n,q,a,d,?]?
ok 10 - git checkout -p handles deletion
expecting success of 2016.11 'path limiting works: dir':
set_state dir/foo work head &&
test_write_lines y n | git checkout -p dir &&
verify_saved_state bar &&
verify_state dir/foo head head
diff --git a/dir/foo b/dir/foo
index 564b12f..b8f99f5 100644
--- a/dir/foo
+++ b/dir/foo
@@ -1 +1 @@
-head
+work
(1/1) Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 11 - path limiting works: dir
expecting success of 2016.12 'path limiting works: -- dir':
set_state dir/foo work head &&
test_write_lines y n | git checkout -p -- dir &&
verify_saved_state bar &&
verify_state dir/foo head head
diff --git a/dir/foo b/dir/foo
index 564b12f..b8f99f5 100644
--- a/dir/foo
+++ b/dir/foo
@@ -1 +1 @@
-head
+work
(1/1) Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 12 - path limiting works: -- dir
expecting success of 2016.13 'path limiting works: HEAD^ -- dir':
# the third n is to get out in case it mistakenly does not apply
test_write_lines y n n | git checkout -p HEAD^ -- dir &&
verify_saved_state bar &&
verify_state dir/foo parent parent
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 and worktree [y,n,q,a,d,e,?]?
ok 13 - path limiting works: HEAD^ -- dir
expecting success of 2016.14 'path limiting works: foo inside dir':
set_state dir/foo work head &&
# the third n is to get out in case it mistakenly does not apply
test_write_lines y n n | (cd dir && git checkout -p foo) &&
verify_saved_state bar &&
verify_state dir/foo head head
diff --git a/dir/foo b/dir/foo
index 564b12f..b8f99f5 100644
--- a/dir/foo
+++ b/dir/foo
@@ -1 +1 @@
-head
+work
(1/1) Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 14 - path limiting works: foo inside dir
expecting success of 2016.15 'none of this moved HEAD':
verify_saved_head
ok 15 - none of this moved HEAD
expecting success of 2016.16 'empty tree can be handled':
test_when_finished "git reset --hard" &&
git checkout -p $(test_oid empty_tree) --
diff --git b/bar a/bar
deleted file mode 100644
index 8c999e6..0000000
--- b/bar
+++ /dev/null
@@ -1 +0,0 @@
-bar_work
(1/1) Apply deletion to index and worktree [y,n,q,a,d,?]?
diff --git b/dir/foo a/dir/foo
deleted file mode 100644
index 564b12f..0000000
--- b/dir/foo
+++ /dev/null
@@ -1 +0,0 @@
-head
(1/1) Apply deletion to index and worktree [y,n,q,a,d,?]?
HEAD is now at 3319288 second
ok 16 - empty tree can be handled
# passed all 16 test(s)
1..16
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2017-checkout-orphan.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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"
[main (root-commit) df316c6] First Commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo
[main 8c3f362] Second Commit
Author: A U Thor <author@example.com>
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 main alpha
Switched to a new branch 'alpha'
fatal: Needed a single revision
[alpha (root-commit) 6f20c32] Third Commit
Author: A U Thor <author@example.com>
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 <start_point>':
git checkout main &&
git checkout --orphan beta main^ &&
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 main^ beta
Switched to branch 'main'
Switched to a new branch 'beta'
fatal: Needed a single revision
[beta (root-commit) 530edda] Fourth Commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo
fatal: Needed a single revision
ok 3 - --orphan creates a new orphan branch from <start_point>
expecting success of 2017.4 '--orphan must be rejected with -b':
git checkout main &&
test_must_fail git checkout --orphan new -b newer &&
test refs/heads/main = "$(git symbolic-ref HEAD)"
Switched to branch 'main'
fatal: options '-b', '-B', and '--orphan' cannot be used together
ok 4 - --orphan must be rejected with -b
expecting success of 2017.5 '--orphan must be rejected with -t':
git checkout main &&
test_must_fail git checkout --orphan new -t main &&
test refs/heads/main = "$(git symbolic-ref HEAD)"
Already on 'main'
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 main &&
git config branch.autosetupmerge always &&
git checkout --orphan gamma &&
test_cmp_config "" --default "" branch.gamma.merge &&
test refs/heads/gamma = "$(git symbolic-ref HEAD)" &&
test_must_fail git rev-parse --verify HEAD^ &&
git checkout main &&
git config branch.autosetupmerge inherit &&
git checkout --orphan eta &&
test_cmp_config "" --default "" branch.eta.merge &&
test_cmp_config "" --default "" branch.eta.remote &&
echo refs/heads/eta >expected &&
git symbolic-ref HEAD >actual &&
test_cmp expected actual &&
test_must_fail git rev-parse --verify HEAD^
Already on 'main'
Switched to a new branch 'gamma'
fatal: Needed a single revision
Switched to branch 'main'
Switched to a new branch 'eta'
fatal: Needed a single revision
ok 6 - --orphan ignores branch.autosetupmerge
expecting success of 2017.7 '--orphan makes reflog by default':
git checkout main &&
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 'main'
Switched to a new branch 'delta'
fatal: Needed a single revision
[delta (root-commit) 9beee35] Delta
Author: A U Thor <author@example.com>
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 main &&
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 'main'
Switched to a new branch 'epsilon'
fatal: Needed a single revision
[epsilon (root-commit) c5e7701] Epsilon
Author: A U Thor <author@example.com>
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 main &&
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 'main'
Switched to a new branch 'zeta'
fatal: Needed a single revision
[zeta (root-commit) 1b23595] Zeta
Author: A U Thor <author@example.com>
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 main &&
git checkout -l --orphan eta &&
test_must_fail git rev-parse --verify eta@{0} &&
git checkout main &&
test_must_fail git rev-parse --verify eta@{0}
Switched to branch 'main'
Switched to a new branch 'eta'
fatal: Needed a single revision
Switched to branch 'main'
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 main &&
test_must_fail git checkout --orphan main &&
test refs/heads/main = "$(git symbolic-ref HEAD)"
Already on 'main'
fatal: a branch named 'main' 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 main &&
git reset --hard &&
echo local >>"$TEST_FILE" &&
cat "$TEST_FILE" >"$TEST_FILE.saved" &&
test_must_fail git checkout --orphan new main^ &&
test refs/heads/main = "$(git symbolic-ref HEAD)" &&
test_cmp "$TEST_FILE" "$TEST_FILE.saved" &&
git diff-index --quiet --cached HEAD &&
git reset --hard
Already on 'main'
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 main &&
git checkout --orphan new &&
test_must_fail git checkout --detach
Already on 'main'
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2018-checkout-branch.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
[master (root-commit) ee02a18] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file1
[master 5be17a9] change1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup
expecting success of 2018.2 'checkout a branch without refs/heads/* prefix':
git clone --no-tags . repo-odd-prefix &&
(
cd repo-odd-prefix &&
origin=$(git symbolic-ref refs/remotes/origin/HEAD) &&
git symbolic-ref refs/heads/a-branch "$origin" &&
git checkout -f a-branch &&
git checkout -f a-branch
)
Cloning into 'repo-odd-prefix'...
done.
Switched to branch 'a-branch'
Switched to branch 'a-branch'
ok 2 - checkout a branch without refs/heads/* prefix
expecting success of 2018.3 '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 3 - checkout -b to a new branch, set to HEAD
expecting success of 2018.4 '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 4 - checkout -b to a merge base
expecting success of 2018.5 '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 5 - checkout -b to a new branch, set to an explicit ref
expecting success of 2018.6 '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 6 - checkout -b to a new branch with unmergeable changes fails
expecting success of 2018.7 '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 7 - checkout -f -b to a new branch with unmergeable changes discards changes
expecting success of 2018.8 '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 8 - checkout -b to a new branch preserves mergeable changes
expecting success of 2018.9 '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 9 - checkout -f -b to a new branch with mergeable changes discards changes
expecting success of 2018.10 '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 10 - checkout -b to an existing branch fails
expecting success of 2018.11 '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_cmp expect actual
Switched to branch 'branch1'
Switched to branch 'branch2'
ok 11 - checkout -b to @{-1} fails with the right branch name
expecting success of 2018.12 '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 12 - checkout -B to an existing branch resets branch to HEAD
expecting success of 2018.13 '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 13 - checkout -B to a merge base
expecting success of 2018.14 '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 <new-branch-name>
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 14 - checkout -B to an existing branch from detached HEAD resets branch to HEAD
expecting success of 2018.15 '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 15 - checkout -B to an existing branch with an explicit ref resets branch to that ref
expecting success of 2018.16 '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 16 - checkout -B to an existing branch with unmergeable changes fails
expecting success of 2018.17 '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 17 - checkout -f -B to an existing branch with unmergeable changes discards changes
expecting success of 2018.18 '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 18 - checkout -B to an existing branch preserves mergeable changes
expecting success of 2018.19 '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 19 - checkout -f -B to an existing branch with mergeable changes discards changes
expecting success of 2018.20 'checkout -b <describe>':
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 <new-branch-name>
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 20 - checkout -b <describe>
expecting success of 2018.21 'checkout -B to the current branch works':
git checkout branch1 &&
git checkout -B branch1-scratch &&
setup_dirty_mergeable &&
git checkout -B branch1-scratch initial &&
test_dirty_mergeable
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 21 - checkout -B to the current branch works
expecting success of 2018.22 '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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2018-checkout-branch/src/.git/
[master (root-commit) 7f0b538] a
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a.t
Cloning into 'dest'...
done.
Switched to a new branch 'branch'
ok 22 - checkout -b after clone --no-checkout does a checkout of HEAD
expecting success of 2018.23 '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 -rf .git/info" &&
test_commit file2 &&
echo stuff >>file1 &&
mkdir .git/info &&
echo file2 >.git/info/sparse-checkout &&
git config core.sparseCheckout true &&
CURHEAD=$(git rev-parse HEAD) &&
do_checkout branch3 $CURHEAD &&
echo file1 >expect &&
git diff --name-only >actual &&
test_cmp expect actual
[branch1-scratch b9d73e8] file2
Author: A U Thor <author@example.com>
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
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 23 - checkout -b to a new branch preserves mergeable changes despite sparse-checkout
expecting success of 2018.24 '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 24 - checkout -b rejects an invalid start point
expecting success of 2018.25 '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 25 - checkout -b rejects an extra path argument
# passed all 25 test(s)
1..25
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2019-checkout-ambiguous-ref.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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) c291a6e] branch
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
[master a40f7cf] tag
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[master 3b61e26] other
Author: A U Thor <author@example.com>
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
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
# passed all 9 test(s)
1..9
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2020-checkout-detach.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2020-checkout-detach/.git/
expecting success of 2020.1 'setup':
test_commit one &&
test_commit two &&
test_commit three && git tag -d three &&
test_commit four && git tag -d four &&
git branch branch &&
git tag tag
[main (root-commit) d79ce16] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
[main 139b20d] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 two.t
[main 7c7cd71] three
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 three.t
Deleted tag 'three' (was 7c7cd71)
[main fd8d77e] four
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 four.t
Deleted tag 'four' (was fd8d77e)
ok 1 - setup
expecting success of 2020.2 'checkout branch does not detach':
reset &&
git checkout branch &&
check_not_detached
Already on 'main'
Switched to branch 'branch'
ok 2 - checkout branch does not detach
expecting success of 2020.3 'checkout tag detaches':
reset &&
git checkout tag &&
check_detached
Switched to branch 'main'
Note: switching to 'tag'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at fd8d77e four
ok 3 - checkout tag detaches
expecting success of 2020.4 'checkout branch by full name detaches':
reset &&
git checkout refs/heads/branch &&
check_detached
Switched to branch 'main'
Note: switching to 'refs/heads/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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at fd8d77e four
ok 4 - checkout branch by full name detaches
expecting success of 2020.5 'checkout non-ref detaches':
reset &&
git checkout branch^ &&
check_detached
Switched to branch 'main'
Note: switching 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.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 7c7cd71 three
ok 5 - checkout non-ref detaches
expecting success of 2020.6 'checkout ref^0 detaches':
reset &&
git checkout branch^0 &&
check_detached
Previous HEAD position was 7c7cd71 three
Switched to branch 'main'
Note: switching to 'branch^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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at fd8d77e four
ok 6 - checkout ref^0 detaches
expecting success of 2020.7 'checkout --detach detaches':
reset &&
git checkout --detach branch &&
check_detached
Switched to branch 'main'
HEAD is now at fd8d77e four
ok 7 - checkout --detach detaches
expecting success of 2020.8 'checkout --detach without branch name':
reset &&
git checkout --detach &&
check_detached
Switched to branch 'main'
HEAD is now at fd8d77e four
ok 8 - checkout --detach without branch name
expecting success of 2020.9 'checkout --detach errors out for non-commit':
reset &&
test_must_fail git checkout --detach one^{tree} &&
check_not_detached
Switched to branch 'main'
fatal: Cannot switch branch to a non-commit 'one^{tree}'
ok 9 - checkout --detach errors out for non-commit
expecting success of 2020.10 'checkout --detach errors out for extra argument':
reset &&
git checkout main &&
test_must_fail git checkout --detach tag one.t &&
check_not_detached
Already on 'main'
Already on 'main'
fatal: git checkout: --detach does not take a path argument 'one.t'
ok 10 - checkout --detach errors out for extra argument
expecting success of 2020.11 'checkout --detached and -b are incompatible':
reset &&
test_must_fail git checkout --detach -b newbranch tag &&
check_not_detached
Already on 'main'
fatal: '--detach' cannot be used with '-b/-B/--orphan'
ok 11 - checkout --detached and -b are incompatible
expecting success of 2020.12 'checkout --detach moves HEAD':
reset &&
git checkout one &&
git checkout --detach two &&
git diff --exit-code HEAD &&
git diff --exit-code two
Already on 'main'
Note: switching to 'one'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at d79ce16 one
Previous HEAD position was d79ce16 one
HEAD is now at 139b20d two
ok 12 - checkout --detach moves HEAD
expecting success of 2020.13 'checkout warns on orphan commits':
reset &&
git checkout --detach two &&
echo content >orphan &&
git add orphan &&
git commit -a -m orphan1 &&
echo new content >orphan &&
git commit -a -m orphan2 &&
orphan2=$(git rev-parse HEAD) &&
git checkout main 2>stderr
Previous HEAD position was 139b20d two
Switched to branch 'main'
HEAD is now at 139b20d two
[detached HEAD 61e8031] orphan1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 orphan
[detached HEAD bfea71d] orphan2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 13 - checkout warns on orphan commits
expecting success of 2020.14 'checkout warns on orphan commits: output':
check_orphan_warning stderr "2 commits"
Warning: you are leaving 2 commits behind, not connected to
ok 14 - checkout warns on orphan commits: output
expecting success of 2020.15 'checkout warns orphaning 1 of 2 commits':
git checkout "$orphan2" &&
git checkout HEAD^ 2>stderr
Note: switching to 'bfea71df3731158d55fcf7b9d1ae214132b90e2b'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at bfea71d orphan2
ok 15 - checkout warns orphaning 1 of 2 commits
expecting success of 2020.16 'checkout warns orphaning 1 of 2 commits: output':
check_orphan_warning stderr "1 commit"
Warning: you are leaving 1 commit behind, not connected to
ok 16 - checkout warns orphaning 1 of 2 commits: output
expecting success of 2020.17 'checkout does not warn leaving ref tip':
reset &&
git checkout --detach two &&
git checkout main 2>stderr
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
61e8031 orphan1
If you want to keep it by creating a new branch, this may be a good time
to do so with:
git branch <new-branch-name> 61e8031
Switched to branch 'main'
HEAD is now at 139b20d two
ok 17 - checkout does not warn leaving ref tip
expecting success of 2020.18 'checkout does not warn leaving ref tip':
check_no_orphan_warning stderr
Previous HEAD position was 139b20d two
ok 18 - checkout does not warn leaving ref tip
expecting success of 2020.19 'checkout does not warn leaving reachable commit':
reset &&
git checkout --detach HEAD^ &&
git checkout main 2>stderr
Already on 'main'
HEAD is now at 7c7cd71 three
ok 19 - checkout does not warn leaving reachable commit
expecting success of 2020.20 'checkout does not warn leaving reachable commit':
check_no_orphan_warning stderr
Previous HEAD position was 7c7cd71 three
ok 20 - checkout does not warn leaving reachable commit
expecting success of 2020.21 'tracking count is accurate after orphan check':
reset &&
git branch child main^ &&
git config branch.child.remote . &&
git config branch.child.merge refs/heads/main &&
git checkout child^ &&
git checkout child >stdout &&
test_cmp expect stdout
Already on 'main'
Note: switching to 'child^'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 139b20d two
Previous HEAD position was 139b20d two
Switched to branch 'child'
ok 21 - tracking count is accurate after orphan check
expecting success of 2020.22 'no advice given for explicit detached head state':
# baseline
test_config advice.detachedHead true &&
git checkout child && git checkout HEAD^0 >expect.advice 2>&1 &&
test_config advice.detachedHead false &&
git checkout child && git checkout HEAD^0 >expect.no-advice 2>&1 &&
test_unconfig advice.detachedHead &&
# without configuration, the advice.* variables default to true
git checkout child && git checkout HEAD^0 >actual 2>&1 &&
test_cmp expect.advice actual &&
# with explicit --detach
# no configuration
test_unconfig advice.detachedHead &&
git checkout child && git checkout --detach HEAD^0 >actual 2>&1 &&
test_cmp expect.no-advice actual &&
# explicitly decline advice
test_config advice.detachedHead false &&
git checkout child && git checkout --detach HEAD^0 >actual 2>&1 &&
test_cmp expect.no-advice actual
Already on 'child'
Your branch is behind 'main' by 1 commit, and can be fast-forwarded.
(use "git pull" to update your local branch)
Switched to branch 'child'
Your branch is behind 'main' by 1 commit, and can be fast-forwarded.
(use "git pull" to update your local branch)
Switched to branch 'child'
Your branch is behind 'main' by 1 commit, and can be fast-forwarded.
(use "git pull" to update your local branch)
Switched to branch 'child'
Your branch is behind 'main' by 1 commit, and can be fast-forwarded.
(use "git pull" to update your local branch)
Switched to branch 'child'
Your branch is behind 'main' by 1 commit, and can be fast-forwarded.
(use "git pull" to update your local branch)
ok 22 - no advice given for explicit detached head state
expecting success of 2020.23 'describe_detached_head prints no SHA-1 ellipsis when not asked to':
commit=7c7cd714e262 &&
commit2=139b20d8e6c5 &&
commit3=d79ce1670bdc &&
# The first detach operation is more chatty than the following ones.
cat >1st_detach <<-EOF &&
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at $commit three
EOF
# The remaining ones just show info about previous and current HEADs.
cat >2nd_detach <<-EOF &&
Previous HEAD position was $commit three
HEAD is now at $commit2 two
EOF
cat >3rd_detach <<-EOF &&
Previous HEAD position was $commit2 two
HEAD is now at $commit3 one
EOF
reset &&
check_not_detached &&
# Various ways of *not* asking for ellipses
sane_unset GIT_PRINT_SHA1_ELLIPSIS &&
git -c 'core.abbrev=12' checkout HEAD^ >actual 2>&1 &&
check_detached &&
test_cmp 1st_detach actual &&
GIT_PRINT_SHA1_ELLIPSIS=no git -c 'core.abbrev=12' checkout HEAD^ >actual 2>&1 &&
check_detached &&
test_cmp 2nd_detach actual &&
GIT_PRINT_SHA1_ELLIPSIS= git -c 'core.abbrev=12' checkout HEAD^ >actual 2>&1 &&
check_detached &&
test_cmp 3rd_detach actual &&
sane_unset GIT_PRINT_SHA1_ELLIPSIS &&
# We only have four commits, but we can re-use them
reset &&
check_not_detached &&
# Make no mention of the env var at all
git -c 'core.abbrev=12' checkout HEAD^ >actual 2>&1 &&
check_detached &&
test_cmp 1st_detach actual &&
GIT_PRINT_SHA1_ELLIPSIS='nope' &&
git -c 'core.abbrev=12' checkout HEAD^ >actual 2>&1 &&
check_detached &&
test_cmp 2nd_detach actual &&
GIT_PRINT_SHA1_ELLIPSIS=nein &&
git -c 'core.abbrev=12' checkout HEAD^ >actual 2>&1 &&
check_detached &&
test_cmp 3rd_detach actual &&
true
Previous HEAD position was 7c7cd71 three
Switched to branch 'main'
Previous HEAD position was d79ce16 one
Switched to branch 'main'
ok 23 - describe_detached_head prints no SHA-1 ellipsis when not asked to
expecting success of 2020.24 'describe_detached_head does print SHA-1 ellipsis when asked to':
commit=7c7cd714e262 &&
commit2=139b20d8e6c5 &&
commit3=d79ce1670bdc &&
# The first detach operation is more chatty than the following ones.
cat >1st_detach <<-EOF &&
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at $commit... three
EOF
# The remaining ones just show info about previous and current HEADs.
cat >2nd_detach <<-EOF &&
Previous HEAD position was $commit... three
HEAD is now at $commit2... two
EOF
cat >3rd_detach <<-EOF &&
Previous HEAD position was $commit2... two
HEAD is now at $commit3... one
EOF
reset &&
check_not_detached &&
# Various ways of asking for ellipses...
# The user can just use any kind of quoting (including none).
GIT_PRINT_SHA1_ELLIPSIS=yes git -c 'core.abbrev=12' checkout HEAD^ >actual 2>&1 &&
check_detached &&
test_cmp 1st_detach actual &&
GIT_PRINT_SHA1_ELLIPSIS=Yes git -c 'core.abbrev=12' checkout HEAD^ >actual 2>&1 &&
check_detached &&
test_cmp 2nd_detach actual &&
GIT_PRINT_SHA1_ELLIPSIS=YES git -c 'core.abbrev=12' checkout HEAD^ >actual 2>&1 &&
check_detached &&
test_cmp 3rd_detach actual &&
true
Previous HEAD position was d79ce16 one
Switched to branch 'main'
ok 24 - describe_detached_head does print SHA-1 ellipsis when asked to
# passed all 24 test(s)
1..24
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2021-checkout-overwrite.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
[master (root-commit) 6ef9cb1] base
Author: A U Thor <author@example.com>
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 <author@example.com>
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 <author@example.com>
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 2021.4 'create a commit where dir a/b changed to symlink':
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"
Switched to a new branch 'symlink'
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
[symlink 6de6f3e] dir to symlink
Author: A U Thor <author@example.com>
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 <author@example.com>
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_when_finished "rm a/b" &&
test -h a/b
ok 6 - the symlink remained
expecting success of 2021.7 'checkout -f must not follow symlinks when removing entries':
git checkout -f start &&
mkdir dir &&
>dir/f &&
git add dir/f &&
git commit -m "add dir/f" &&
mv dir untracked &&
ln -s untracked dir &&
git checkout -f HEAD~ &&
test_path_is_file untracked/f
Note: switching to 'start'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 6ef9cb1 base
[detached HEAD 63af845] add dir/f
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dir/f
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
63af845 add dir/f
If you want to keep it by creating a new branch, this may be a good time
to do so with:
git branch <new-branch-name> 63af845
HEAD is now at 6ef9cb1 base
ok 7 - checkout -f must not follow symlinks when removing entries
# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2022-checkout-paths.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2022-checkout-paths/.git/
expecting success of 2022.1 'setup':
mkdir dir &&
>dir/main &&
echo common >dir/common &&
git add dir/main dir/common &&
test_tick && git commit -m "main has dir/main" &&
git checkout -b next &&
git mv dir/main dir/next0 &&
echo next >dir/next1 &&
git add dir &&
test_tick && git commit -m "next has dir/next but not dir/main"
[main (root-commit) 0ea9f56] main has dir/main
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+)
create mode 100644 dir/common
create mode 100644 dir/main
Switched to a new branch 'next'
[next 30942f7] next has dir/next but not dir/main
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+)
rename dir/{main => 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 main dir &&
test_cmp expect.common dir/common &&
test_path_is_file dir/main &&
git diff --exit-code main dir/main &&
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 30942f7 next has dir/next but not dir/main
Updated 1 path from 4e95d5f
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
expecting success of 2022.3 'do not touch unmerged entries matching $path but not in $tree':
git checkout next &&
git reset --hard &&
cat dir/common >expect.common &&
EMPTY_SHA1=$(git hash-object -w --stdin </dev/null) &&
git rm dir/next0 &&
cat >expect.next0 <<-EOF &&
100644 $EMPTY_SHA1 1 dir/next0
100644 $EMPTY_SHA1 2 dir/next0
EOF
git update-index --index-info <expect.next0 &&
git checkout main dir &&
test_cmp expect.common dir/common &&
test_path_is_file dir/main &&
git diff --exit-code main dir/main &&
git ls-files -s dir/next0 >actual.next0 &&
test_cmp expect.next0 actual.next0
Already on 'next'
A dir/main
D dir/next0
M dir/next1
HEAD is now at 30942f7 next has dir/next but not dir/main
rm 'dir/next0'
Updated 1 path from 4e95d5f
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
HEAD is now at 30942f7 next has dir/next but not dir/main
[next 567e06c] base
Author: A U Thor <author@example.com>
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 6bd1da2] create files to be deleted
Author: A U Thor <author@example.com>
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 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2023-checkout-m.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2023-checkout-m/.git/
expecting success of 2023.1 'setup':
test_tick &&
test_commit both.txt both.txt initial &&
git branch topic &&
test_commit modified_in_main both.txt in_main &&
test_commit added_in_main each.txt in_main &&
git checkout topic &&
test_commit modified_in_topic both.txt in_topic &&
test_commit added_in_topic each.txt in_topic
[main (root-commit) 7a8c5bf] both.txt
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 both.txt
[main caa44c2] modified_in_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[main 8422e32] added_in_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 each.txt
Switched to branch 'topic'
[topic 33542d7] modified_in_topic
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[topic d46615c] added_in_topic
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 each.txt
ok 1 - setup
expecting success of 2023.2 'git merge main':
test_must_fail git merge main
Auto-merging both.txt
CONFLICT (content): Merge conflict in both.txt
Auto-merging each.txt
CONFLICT (add/add): Merge conflict in each.txt
Automatic merge failed; fix conflicts and then commit the result.
ok 2 - git merge main
expecting success of 2023.3 '-m restores 2-way conflicted+resolved file':
cp each.txt each.txt.conflicted &&
echo resolved >each.txt &&
git add each.txt &&
git checkout -m -- each.txt &&
clean_branchnames <each.txt >each.txt.cleaned &&
clean_branchnames <each.txt.conflicted >each.txt.conflicted.cleaned &&
test_cmp each.txt.conflicted.cleaned each.txt.cleaned
ok 3 - -m restores 2-way conflicted+resolved file
expecting success of 2023.4 '-m restores 3-way conflicted+resolved file':
cp both.txt both.txt.conflicted &&
echo resolved >both.txt &&
git add both.txt &&
git checkout -m -- both.txt &&
clean_branchnames <both.txt >both.txt.cleaned &&
clean_branchnames <both.txt.conflicted >both.txt.conflicted.cleaned &&
test_cmp both.txt.conflicted.cleaned both.txt.cleaned
ok 4 - -m restores 3-way conflicted+resolved file
expecting success of 2023.5 'force checkout a conflict file creates stage zero entry':
git init co-force &&
(
cd co-force &&
echo a >a &&
git add a &&
git commit -ama &&
A_OBJ=$(git rev-parse :a) &&
git branch topic &&
echo b >a &&
git commit -amb &&
B_OBJ=$(git rev-parse :a) &&
git checkout topic &&
echo c >a &&
C_OBJ=$(git hash-object a) &&
git checkout -m main &&
test_cmp_rev :1:a $A_OBJ &&
test_cmp_rev :2:a $B_OBJ &&
test_cmp_rev :3:a $C_OBJ &&
git checkout -f topic &&
test_cmp_rev :0:a $A_OBJ
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2023-checkout-m/co-force/.git/
[main (root-commit) b7442a0] a
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a
[main 7529dfa] b
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'topic'
Switched to branch 'main'
M a
Switched to branch 'topic'
ok 5 - force checkout a conflict file creates stage zero entry
# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2024-checkout-dwim.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2024-checkout-dwim/.git/
expecting success of 2024.1 'setup':
test_commit my_main &&
git init repo_a &&
(
cd repo_a &&
test_commit a_main &&
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_main &&
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) 476f86c] my_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 my_main.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2024-checkout-dwim/repo_a/.git/
[master (root-commit) d6d6851] a_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a_main.t
Switched to a new branch 'foo'
[foo e2c25ec] a_foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a_foo.t
Switched to a new branch 'bar'
[bar bfd2f16] a_bar
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a_bar.t
Switched to a new branch 'ambiguous_branch_and_file'
[ambiguous_branch_and_file 225901c] a_ambiguous_branch_and_file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a_ambiguous_branch_and_file.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2024-checkout-dwim/repo_b/.git/
[master (root-commit) 272258e] b_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b_main.t
Switched to a new branch 'foo'
[foo 7eb022a] b_foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b_foo.t
Switched to a new branch 'baz'
[baz 8ac57c7] b_baz
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b_baz.t
Switched to a new branch 'ambiguous_branch_and_file'
[ambiguous_branch_and_file 1b5c299] b_ambiguous_branch_and_file
Author: A U Thor <author@example.com>
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_main -> a_main
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_main -> b_main
ok 1 - setup
expecting success of 2024.2 'checkout of non-existing branch fails':
git checkout -B main &&
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 main
Switched to a new branch 'main'
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 main &&
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 main
Reset branch 'main'
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/<name>
hint:
hint: If you'd like to always have checkouts of an ambiguous <name> 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 8830e76] ambiguous_branch_and_file
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 ambiguous_branch_and_file
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 main &&
test_might_fail git branch -D foo &&
test_must_fail git checkout foo 2>stderr &&
test_branch main &&
status_uno_is_clean &&
test_i18ngrep "^hint: " stderr &&
test_must_fail git -c advice.checkoutAmbiguousRemoteBranchName=false \
checkout foo 2>stderr &&
test_branch main &&
status_uno_is_clean &&
test_i18ngrep ! "^hint: " stderr
Switched to and reset branch 'main'
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/<name>
hint:
hint: If you'd like to always have checkouts of an ambiguous <name> 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 main &&
test_might_fail git branch -D foo &&
git checkout -p foo 2>stderr &&
test_i18ngrep ! "^hint: " stderr &&
status_uno_is_clean
Reset branch 'main'
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 main &&
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 'main'
error: branch 'foo' not found.
Switched to a new branch 'foo'
branch 'foo' set up to track 'repo_a/foo'.
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 main &&
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 'main'
error: branch 'bar' not found.
Switched to a new branch 'bar'
branch 'bar' set up to track 'repo_a/bar'.
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 main &&
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 'main'
error: branch 'baz' not found.
Switched to a new branch 'baz'
branch 'baz' set up to track 'repo_b/baz'.
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 main &&
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 main
Switched to and reset branch 'main'
Deleted branch bar (was bfd2f16).
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 main &&
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 main
Reset branch 'main'
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 main &&
status_uno_is_clean &&
git init repo_c &&
(
cd repo_c &&
test_commit c_main &&
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_main &&
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 'main'
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2024-checkout-dwim/repo_c/.git/
[master (root-commit) cdfe1c8] c_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 c_main.t
Switched to a new branch 'bar'
[bar b017b41] c_bar
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 c_bar.t
Switched to a new branch 'spam'
[spam 449823f] c_spam
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 c_spam.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2024-checkout-dwim/repo_d/.git/
[master (root-commit) b0e85f1] d_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 d_main.t
Switched to a new branch 'baz'
[baz b83c7c6] d_baz
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 d_baz.t
Switched to a new branch 'eggs'
[eggs e1ffd37] d_eggs
Author: A U Thor <author@example.com>
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_main -> c_main
* [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_main -> d_main
ok 12 - setup more remotes with unconventional refspecs
expecting success of 2024.13 'checkout of branch from multiple remotes fails #2':
git checkout -B main &&
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 main
Reset branch 'main'
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/<name>
hint:
hint: If you'd like to always have checkouts of an ambiguous <name> 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 main &&
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 main
Reset branch 'main'
Deleted branch baz (was 8ac57c7).
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/<name>
hint:
hint: If you'd like to always have checkouts of an ambiguous <name> 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 main &&
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 'main'
error: branch 'spam' not found.
Switched to a new branch 'spam'
branch 'spam' set up to track 'repo_c/spam'.
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 main &&
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 'main'
error: branch 'eggs' not found.
Switched to a new branch 'eggs'
branch 'eggs' set up to track 'repo_d/eggs'.
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 main &&
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 main
Switched to and reset branch 'main'
Deleted branch spam (was 449823f).
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 main &&
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 main
Reset branch 'main'
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 <branch> -- succeeds, even if a file with the same name exists':
git checkout -B main &&
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 'main'
error: branch 'spam' not found.
Switched to a new branch 'spam'
branch 'spam' set up to track 'repo_c/spam'.
ok 19 - checkout <branch> -- 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 main &&
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/main &&
test_config branch.loose.merge main &&
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 'main'
[main 0b0f2ce] a bit more
Author: A U Thor <author@example.com>
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 'foo/dwim-arg2'.
e1ffd376e093970186efb2074ec16dcb57d23789
--
bar
ok 23 - disambiguate dwim branch and checkout path (2)
# passed all 23 test(s)
1..23
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2025-checkout-no-overlay.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <author@example.com>
ok 1 - setup
expecting success of 2025.2 'checkout --no-overlay deletes files not in <tree-ish>':
>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 <tree-ish>
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: options .-p. and .--overlay. cannot be used together" actual
fatal: options '-p' and '--overlay' cannot be used together
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 <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file1
[master 1c03fe1] file2
Author: A U Thor <author@example.com>
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 <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 subdir/file3
[master cac8ac6] file3-2
Author: A U Thor <author@example.com>
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2026-checkout-pathspec-file.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file0.t
[master 46ee160] files 1
Author: A U Thor <author@example.com>
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 <author@example.com>
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 &&
cat >expect <<-\EOF &&
M fileA.t
EOF
verify_expect
HEAD is now at 774eb8e files 2
Updated 1 path from 0465292
ok 8 - quotes
expecting success of 2026.9 'quotes not compatible with --pathspec-file-nul':
restore_checkpoint &&
cat >list <<-\EOF &&
"file\101.t"
EOF
test_must_fail git checkout --pathspec-from-file=list --pathspec-file-nul HEAD^1
HEAD is now at 774eb8e files 2
error: pathspec '"file\101.t"
' did not match any file(s) known to git
ok 9 - quotes not compatible with --pathspec-file-nul
expecting success of 2026.10 'only touches what was listed':
restore_checkpoint &&
printf "fileB.t\nfileC.t\n" | git checkout --pathspec-from-file=- HEAD^1 &&
cat >expect <<-\EOF &&
M fileB.t
M fileC.t
EOF
verify_expect
HEAD is now at 774eb8e files 2
Updated 2 paths from 0465292
ok 10 - only touches what was listed
expecting success of 2026.11 'error conditions':
restore_checkpoint &&
echo fileA.t >list &&
test_must_fail git checkout --pathspec-from-file=list --detach 2>err &&
test_i18ngrep -e "options .--pathspec-from-file. and .--detach. cannot be used together" err &&
test_must_fail git checkout --pathspec-from-file=list --patch 2>err &&
test_i18ngrep -e "options .--pathspec-from-file. and .--patch. cannot be used together" err &&
test_must_fail git checkout --pathspec-from-file=list -- fileA.t 2>err &&
test_i18ngrep -e ".--pathspec-from-file. and pathspec arguments cannot be used together" err &&
test_must_fail git checkout --pathspec-file-nul 2>err &&
test_i18ngrep -e "the option .--pathspec-file-nul. requires .--pathspec-from-file." err
HEAD is now at 774eb8e files 2
fatal: options '--pathspec-from-file' and '--detach' cannot be used together
fatal: options '--pathspec-from-file' and '--patch' cannot be used together
fatal: '--pathspec-from-file' and pathspec arguments cannot be used together
fatal: the option '--pathspec-file-nul' requires '--pathspec-from-file'
ok 11 - error conditions
# passed all 11 test(s)
1..11
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2027-checkout-track.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2027-checkout-track/.git/
expecting success of 2027.1 'setup':
test_commit one &&
test_commit two
[main (root-commit) d79ce16] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
[main 139b20d] two
Author: A U Thor <author@example.com>
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 main &&
test $(git rev-parse --abbrev-ref HEAD) = branch1 &&
test $(git config --get branch.branch1.remote) = . &&
test $(git config --get branch.branch1.merge) = refs/heads/main
Switched to a new branch 'branch1'
branch 'branch1' set up to track 'main'.
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 main one.t 2>err &&
test_i18ngrep "cannot be used with updating paths" err
fatal: '--track' cannot be used with updating paths
ok 3 - checkout --track -b rejects an extra path argument
expecting success of 2027.4 'checkout --track -b overrides autoSetupMerge=inherit':
# Set up tracking config on main
test_config branch.main.remote origin &&
test_config branch.main.merge refs/heads/some-branch &&
test_config branch.autoSetupMerge inherit &&
# With --track=inherit, we copy the tracking config from main
git checkout --track=inherit -b b1 main &&
test_cmp_config origin branch.b1.remote &&
test_cmp_config refs/heads/some-branch branch.b1.merge &&
# With branch.autoSetupMerge=inherit, we do the same
git checkout -b b2 main &&
test_cmp_config origin branch.b2.remote &&
test_cmp_config refs/heads/some-branch branch.b2.merge &&
# But --track overrides this
git checkout --track -b b3 main &&
test_cmp_config . branch.b3.remote &&
test_cmp_config refs/heads/main branch.b3.merge &&
# And --track=direct does as well
git checkout --track=direct -b b4 main &&
test_cmp_config . branch.b4.remote &&
test_cmp_config refs/heads/main branch.b4.merge
Switched to a new branch 'b1'
branch 'b1' set up to track 'origin/some-branch'.
Switched to a new branch 'b2'
branch 'b2' set up to track 'origin/some-branch'.
Switched to a new branch 'b3'
branch 'b3' set up to track 'main'.
Switched to a new branch 'b4'
branch 'b4' set up to track 'main'.
ok 4 - checkout --track -b overrides autoSetupMerge=inherit
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1701-racy-split-index.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <author@example.com>
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2050-git-dir-relative.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2050-git-dir-relative/.git/
expecting success of 2050.1 'Setting up post-commit hook':
mkdir -p .git/hooks &&
echo >.git/hooks/post-commit "#!/bin/sh
touch \"\${COMMIT_FILE}\"
echo Post commit hook was called." &&
chmod +x .git/hooks/post-commit
ok 1 - Setting up post-commit hook
expecting success of 2050.2 'post-commit hook used ordinarily':
echo initial >top &&
git add top &&
git commit -m initial &&
test -r "${COMMIT_FILE}"
Post commit hook was called.
[master (root-commit) 0619340] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 top
ok 2 - post-commit hook used ordinarily
expecting success of 2050.3 'post-commit-hook created and used from top dir':
echo changed >top &&
git --git-dir subdir/.git add top &&
git --git-dir subdir/.git commit -m topcommit &&
test -r "${COMMIT_FILE}"
Post commit hook was called.
[master fc38a58] topcommit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 3 - post-commit-hook created and used from top dir
expecting success of 2050.4 'post-commit-hook from sub dir':
echo changed again >top &&
cd subdir &&
git --git-dir .git --work-tree .. add ../top &&
git --git-dir .git --work-tree .. commit -m subcommit &&
test -r "${COMMIT_FILE}"
Post commit hook was called.
[master ca7703f] subcommit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 4 - post-commit-hook from sub dir
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2030-unresolve-info.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2030-unresolve-info/.git/
expecting success of 2030.1 'setup':
mkdir fi &&
printf "a\0a" >binary &&
git add binary &&
test_commit initial fi/le first &&
git branch side &&
git branch another &&
printf "a\0b" >binary &&
git add binary &&
test_commit second fi/le second &&
git checkout side &&
test_commit third fi/le third &&
git branch add-add &&
git checkout another &&
test_commit fourth fi/le fourth &&
git checkout add-add &&
test_commit fifth add-differently &&
git checkout main
[main (root-commit) 7b271e3] initial
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+)
create mode 100644 binary
create mode 100644 fi/le
[main 9a00f99] second
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'side'
[side b18340d] third
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'another'
[another cf4d985] fourth
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'add-add'
[add-add b851e77] fifth
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 add-differently
Switched to branch 'main'
ok 1 - setup
expecting success of 2030.2 'add records switch clears':
prime_resolve_undo &&
test_tick &&
git commit -m merged &&
echo committing keeps &&
check_resolve_undo kept fi/le initial:fi/le second:fi/le third:fi/le &&
git checkout second^0 &&
echo switching clears &&
check_resolve_undo cleared
HEAD is now at 9a00f99 second
Note: switching to 'second^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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 9a00f99 second
Auto-merging fi/le
CONFLICT (content): Merge conflict in fi/le
Automatic merge failed; fix conflicts and then commit the result.
merge does not leave anything
resolving records
[detached HEAD b3a51df] merged
Author: A U Thor <author@example.com>
committing keeps
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
b3a51df merged
If you want to keep it by creating a new branch, this may be a good time
to do so with:
git branch <new-branch-name> b3a51df
HEAD is now at 9a00f99 second
switching clears
ok 2 - add records switch clears
expecting success of 2030.3 'rm records reset clears':
prime_resolve_undo &&
test_tick &&
git commit -m merged &&
echo committing keeps &&
check_resolve_undo kept fi/le initial:fi/le second:fi/le third:fi/le &&
echo merge clears upfront &&
test_must_fail git merge fourth^0 &&
check_resolve_undo nuked &&
git rm -f fi/le &&
echo resolving records &&
check_resolve_undo recorded fi/le initial:fi/le HEAD:fi/le fourth:fi/le &&
git reset --hard &&
echo resetting discards &&
check_resolve_undo discarded
HEAD is now at 9a00f99 second
HEAD is now at 9a00f99 second
Auto-merging fi/le
CONFLICT (content): Merge conflict in fi/le
Automatic merge failed; fix conflicts and then commit the result.
merge does not leave anything
resolving records
[detached HEAD 70d285e] merged
Author: A U Thor <author@example.com>
committing keeps
merge clears upfront
Auto-merging fi/le
CONFLICT (content): Merge conflict in fi/le
Automatic merge failed; fix conflicts and then commit the result.
rm 'fi/le'
resolving records
HEAD is now at 70d285e merged
resetting discards
ok 3 - rm records reset clears
expecting success of 2030.4 'plumbing clears':
prime_resolve_undo &&
test_tick &&
git commit -m merged &&
echo committing keeps &&
check_resolve_undo kept fi/le initial:fi/le second:fi/le third:fi/le &&
echo plumbing clear &&
git update-index --clear-resolve-undo &&
check_resolve_undo cleared
HEAD is now at 70d285e merged
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
70d285e merged
If you want to keep it by creating a new branch, this may be a good time
to do so with:
git branch <new-branch-name> 70d285e
HEAD is now at 9a00f99 second
Auto-merging fi/le
CONFLICT (content): Merge conflict in fi/le
Automatic merge failed; fix conflicts and then commit the result.
merge does not leave anything
resolving records
[detached HEAD 894de51] merged
Author: A U Thor <author@example.com>
committing keeps
plumbing clear
ok 4 - plumbing clears
expecting success of 2030.5 'add records checkout -m undoes':
prime_resolve_undo &&
git diff HEAD &&
git checkout --conflict=merge fi/le &&
echo checkout used the record and removed it &&
check_resolve_undo removed &&
echo the index and the work tree is unmerged again &&
git diff >actual &&
grep "^++<<<<<<<" actual
HEAD is now at 894de51 merged
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
894de51 merged
If you want to keep it by creating a new branch, this may be a good time
to do so with:
git branch <new-branch-name> 894de51
HEAD is now at 9a00f99 second
Auto-merging fi/le
CONFLICT (content): Merge conflict in fi/le
Automatic merge failed; fix conflicts and then commit the result.
merge does not leave anything
resolving records
diff --git a/fi/le b/fi/le
index e019be0..8dca2f8 100644
--- a/fi/le
+++ b/fi/le
@@ -1 +1 @@
-second
+different
Recreated 1 merge conflict
checkout used the record and removed it
the index and the work tree is unmerged again
++<<<<<<< ours
ok 5 - add records checkout -m undoes
expecting success of 2030.6 'unmerge with plumbing':
prime_resolve_undo &&
git update-index --unresolve fi/le &&
git ls-files -u >actual &&
test_line_count = 3 actual
HEAD is now at 9a00f99 second
HEAD is now at 9a00f99 second
Auto-merging fi/le
CONFLICT (content): Merge conflict in fi/le
Automatic merge failed; fix conflicts and then commit the result.
merge does not leave anything
resolving records
ok 6 - unmerge with plumbing
expecting success of 2030.7 'rerere and rerere forget':
mkdir .git/rr-cache &&
prime_resolve_undo &&
echo record the resolution &&
git rerere &&
rerere_id=$(cd .git/rr-cache && echo */postimage) &&
rerere_id=${rerere_id%/postimage} &&
test -f .git/rr-cache/$rerere_id/postimage &&
git checkout -m fi/le &&
echo resurrect the conflict &&
grep "^=======" fi/le &&
echo reresolve the conflict &&
git rerere &&
test "z$(cat fi/le)" = zdifferent &&
echo register the resolution again &&
git add fi/le &&
check_resolve_undo kept fi/le initial:fi/le second:fi/le third:fi/le &&
test -z "$(git ls-files -u)" &&
git rerere forget fi/le &&
! test -f .git/rr-cache/$rerere_id/postimage &&
tr "\0" "\n" <.git/MERGE_RR >actual &&
echo "$rerere_id fi/le" >expect &&
test_cmp expect actual
HEAD is now at 9a00f99 second
HEAD is now at 9a00f99 second
Auto-merging fi/le
CONFLICT (content): Merge conflict in fi/le
Recorded preimage for 'fi/le'
Automatic merge failed; fix conflicts and then commit the result.
merge does not leave anything
resolving records
record the resolution
Recorded resolution for 'fi/le'.
Recreated 1 merge conflict
resurrect the conflict
=======
reresolve the conflict
Resolved 'fi/le' using previous resolution.
register the resolution again
Updated preimage for 'fi/le'
Forgot resolution for 'fi/le'
ok 7 - rerere and rerere forget
expecting success of 2030.8 'rerere and rerere forget (subdirectory)':
rm -fr .git/rr-cache &&
mkdir .git/rr-cache &&
prime_resolve_undo &&
echo record the resolution &&
(cd fi && git rerere) &&
rerere_id=$(cd .git/rr-cache && echo */postimage) &&
rerere_id=${rerere_id%/postimage} &&
test -f .git/rr-cache/$rerere_id/postimage &&
(cd fi && git checkout -m le) &&
echo resurrect the conflict &&
grep "^=======" fi/le &&
echo reresolve the conflict &&
(cd fi && git rerere) &&
test "z$(cat fi/le)" = zdifferent &&
echo register the resolution again &&
(cd fi && git add le) &&
check_resolve_undo kept fi/le initial:fi/le second:fi/le third:fi/le &&
test -z "$(git ls-files -u)" &&
(cd fi && git rerere forget le) &&
! test -f .git/rr-cache/$rerere_id/postimage &&
tr "\0" "\n" <.git/MERGE_RR >actual &&
echo "$rerere_id fi/le" >expect &&
test_cmp expect actual
HEAD is now at 9a00f99 second
HEAD is now at 9a00f99 second
Auto-merging fi/le
CONFLICT (content): Merge conflict in fi/le
Recorded preimage for 'fi/le'
Automatic merge failed; fix conflicts and then commit the result.
merge does not leave anything
resolving records
record the resolution
Recorded resolution for 'fi/le'.
Recreated 1 merge conflict
resurrect the conflict
=======
reresolve the conflict
Resolved 'fi/le' using previous resolution.
register the resolution again
Updated preimage for 'fi/le'
Forgot resolution for 'fi/le'
ok 8 - rerere and rerere forget (subdirectory)
expecting success of 2030.9 'rerere forget (binary)':
git checkout -f side &&
test_commit --printf binary binary "a\0c" &&
test_must_fail git merge second &&
git rerere forget binary
Previous HEAD position was 9a00f99 second
Switched to branch 'side'
[side d884667] binary
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
warning: Cannot merge binary files: binary (HEAD vs. second)
Auto-merging binary
CONFLICT (content): Merge conflict in binary
Auto-merging fi/le
CONFLICT (content): Merge conflict in fi/le
Recorded preimage for 'fi/le'
Automatic merge failed; fix conflicts and then commit the result.
error: could not parse conflict hunks in 'binary'
ok 9 - rerere forget (binary)
expecting success of 2030.10 'rerere forget (add-add conflict)':
git checkout -f main &&
echo main >add-differently &&
git add add-differently &&
git commit -m "add differently" &&
test_must_fail git merge fifth &&
git rerere forget add-differently 2>actual &&
test_i18ngrep "no remembered" actual
Switched to branch 'main'
[main 8751f38] add differently
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 add-differently
Auto-merging add-differently
CONFLICT (add/add): Merge conflict in add-differently
Auto-merging fi/le
CONFLICT (content): Merge conflict in fi/le
Recorded preimage for 'add-differently'
Recorded preimage for 'fi/le'
Automatic merge failed; fix conflicts and then commit the result.
error: no remembered resolution for 'add-differently'
ok 10 - rerere forget (add-add conflict)
expecting success of 2030.11 'resolve-undo keeps blobs from gc':
git checkout -f main &&
# First make sure we do not have any cruft left in the object store
git repack -a -d &&
git prune --expire=now &&
git prune-packed &&
git gc --prune=now &&
git fsck --unreachable >cruft &&
test_must_be_empty cruft &&
# Now add three otherwise unreferenced blob objects to the index
git reset --hard &&
B1=$(echo "resolve undo test data 1" | git hash-object -w --stdin) &&
B2=$(echo "resolve undo test data 2" | git hash-object -w --stdin) &&
B3=$(echo "resolve undo test data 3" | git hash-object -w --stdin) &&
git update-index --add --index-info <<-EOF &&
100644 $B1 1 frotz
100644 $B2 2 frotz
100644 $B3 3 frotz
EOF
# These three blob objects are reachable (only) from the index
git fsck --unreachable >cruft &&
test_must_be_empty cruft &&
# and they should be protected from GC
git gc --prune=now &&
git cat-file -e $B1 &&
git cat-file -e $B2 &&
git cat-file -e $B3 &&
# Now resolve the conflicted path
B0=$(echo "resolve undo test data 0" | git hash-object -w --stdin) &&
git update-index --add --cacheinfo 100644,$B0,frotz &&
# These three blob objects are now reachable only from the resolve-undo
git fsck --unreachable >cruft &&
test_must_be_empty cruft &&
# and they should survive GC
git gc --prune=now &&
git cat-file -e $B0 &&
git cat-file -e $B1 &&
git cat-file -e $B2 &&
git cat-file -e $B3 &&
# Now we switch away, which nukes resolve-undo, and
# blobs B0..B3 would become dangling. fsck should
# notice that they are now unreachable.
git checkout -f side &&
git fsck --unreachable >cruft &&
sort cruft >actual &&
sort <<-EOF >expect &&
unreachable blob $B0
unreachable blob $B1
unreachable blob $B2
unreachable blob $B3
EOF
test_cmp expect actual &&
# And they should go away when gc runs.
git gc --prune=now &&
git fsck --unreachable >cruft &&
test_must_be_empty cruft &&
test_must_fail git cat-file -e $B0 &&
test_must_fail git cat-file -e $B1 &&
test_must_fail git cat-file -e $B2 &&
test_must_fail git cat-file -e $B3
Already on 'main'
HEAD is now at 8751f38 add differently
Switched to branch 'side'
ok 11 - resolve-undo keeps blobs from gc
# passed all 11 test(s)
1..11
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2060-switch.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2060-switch/.git/
expecting success of 2060.1 'setup':
test_commit first &&
git branch first-branch &&
test_commit second &&
test_commit third &&
git remote add origin nohost:/nopath &&
git update-ref refs/remotes/origin/foo first-branch
[main (root-commit) 50e526b] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first.t
[main d662100] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 second.t
[main cd7036d] third
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 third.t
ok 1 - setup
expecting success of 2060.2 'switch branch no arguments':
test_must_fail git switch
fatal: missing branch or commit argument
ok 2 - switch branch no arguments
expecting success of 2060.3 'switch branch':
git switch first-branch &&
test_path_is_missing second.t
Switched to branch 'first-branch'
ok 3 - switch branch
expecting success of 2060.4 'switch and detach':
test_when_finished git switch main &&
test_must_fail git switch main^{commit} &&
git switch --detach main^{commit} &&
test_must_fail git symbolic-ref HEAD
fatal: a branch is expected, got commit 'main^{commit}'
hint: If you want to detach HEAD at the commit, try again with the --detach option.
HEAD is now at cd7036d third
fatal: ref HEAD is not a symbolic ref
Switched to branch 'main'
ok 4 - switch and detach
expecting success of 2060.5 'suggestion to detach':
test_must_fail git switch main^{commit} 2>stderr &&
grep "try again with the --detach option" stderr
hint: If you want to detach HEAD at the commit, try again with the --detach option.
ok 5 - suggestion to detach
expecting success of 2060.6 'suggestion to detach is suppressed with advice.suggestDetachingHead=false':
test_config advice.suggestDetachingHead false &&
test_must_fail git switch main^{commit} 2>stderr &&
! grep "try again with the --detach option" stderr
ok 6 - suggestion to detach is suppressed with advice.suggestDetachingHead=false
expecting success of 2060.7 'switch and detach current branch':
test_when_finished git switch main &&
git switch main &&
git switch --detach &&
test_must_fail git symbolic-ref HEAD
Already on 'main'
HEAD is now at cd7036d third
fatal: ref HEAD is not a symbolic ref
Switched to branch 'main'
ok 7 - switch and detach current branch
expecting success of 2060.8 'switch and create branch':
test_when_finished git switch main &&
git switch -c temp main^ &&
test_cmp_rev main^ refs/heads/temp &&
echo refs/heads/temp >expected-branch &&
git symbolic-ref HEAD >actual-branch &&
test_cmp expected-branch actual-branch
Switched to a new branch 'temp'
Switched to branch 'main'
ok 8 - switch and create branch
expecting success of 2060.9 'force create branch from HEAD':
test_when_finished git switch main &&
git switch --detach main &&
test_must_fail git switch -c temp &&
git switch -C temp &&
test_cmp_rev main refs/heads/temp &&
echo refs/heads/temp >expected-branch &&
git symbolic-ref HEAD >actual-branch &&
test_cmp expected-branch actual-branch
HEAD is now at cd7036d third
fatal: a branch named 'temp' already exists
Switched to and reset branch 'temp'
Switched to branch 'main'
ok 9 - force create branch from HEAD
expecting success of 2060.10 'new orphan branch from empty':
test_when_finished git switch main &&
test_must_fail git switch --orphan new-orphan HEAD &&
git switch --orphan new-orphan &&
test_commit orphan &&
git cat-file commit refs/heads/new-orphan >commit &&
! grep ^parent commit &&
git ls-files >tracked-files &&
echo orphan.t >expected &&
test_cmp expected tracked-files
fatal: '--orphan' cannot take <start-point>
Switched to a new branch 'new-orphan'
[new-orphan (root-commit) 11bb70e] orphan
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 orphan.t
Switched to branch 'main'
ok 10 - new orphan branch from empty
expecting success of 2060.11 'orphan branch works with --discard-changes':
test_when_finished git switch main &&
echo foo >foo.txt &&
git switch --discard-changes --orphan new-orphan2 &&
git ls-files >tracked-files &&
test_must_be_empty tracked-files
Switched to a new branch 'new-orphan2'
Switched to branch 'main'
ok 11 - orphan branch works with --discard-changes
expecting success of 2060.12 'switching ignores file of same branch name':
test_when_finished git switch main &&
: >first-branch &&
git switch first-branch &&
echo refs/heads/first-branch >expected &&
git symbolic-ref HEAD >actual &&
test_cmp expected actual
Switched to branch 'first-branch'
Switched to branch 'main'
ok 12 - switching ignores file of same branch name
expecting success of 2060.13 'guess and create branch':
test_when_finished git switch main &&
test_must_fail git switch --no-guess foo &&
test_config checkout.guess false &&
test_must_fail git switch foo &&
test_config checkout.guess true &&
git switch foo &&
echo refs/heads/foo >expected &&
git symbolic-ref HEAD >actual &&
test_cmp expected actual
fatal: invalid reference: foo
fatal: invalid reference: foo
Switched to a new branch 'foo'
branch 'foo' set up to track 'origin/foo'.
Switched to branch 'main'
ok 13 - guess and create branch
expecting success of 2060.14 'not switching when something is in progress':
test_when_finished rm -f .git/MERGE_HEAD &&
# fake a merge-in-progress
cp .git/HEAD .git/MERGE_HEAD &&
test_must_fail git switch -d @^
fatal: cannot switch branch while merging
Consider "git merge --quit" or "git worktree add".
ok 14 - not switching when something is in progress
expecting success of 2060.15 'tracking info copied with autoSetupMerge=inherit':
# default config does not copy tracking info
git switch -c foo-no-inherit foo &&
test_cmp_config "" --default "" branch.foo-no-inherit.remote &&
test_cmp_config "" --default "" branch.foo-no-inherit.merge &&
# with --track=inherit, we copy tracking info from foo
git switch --track=inherit -c foo2 foo &&
test_cmp_config origin branch.foo2.remote &&
test_cmp_config refs/heads/foo branch.foo2.merge &&
# with autoSetupMerge=inherit, we do the same
test_config branch.autoSetupMerge inherit &&
git switch -c foo3 foo &&
test_cmp_config origin branch.foo3.remote &&
test_cmp_config refs/heads/foo branch.foo3.merge &&
# with --track, we override autoSetupMerge
git switch --track -c foo4 foo &&
test_cmp_config . branch.foo4.remote &&
test_cmp_config refs/heads/foo branch.foo4.merge &&
# and --track=direct does as well
git switch --track=direct -c foo5 foo &&
test_cmp_config . branch.foo5.remote &&
test_cmp_config refs/heads/foo branch.foo5.merge &&
# no tracking info to inherit from main
git switch -c main2 main &&
test_cmp_config "" --default "" branch.main2.remote &&
test_cmp_config "" --default "" branch.main2.merge
Switched to a new branch 'foo-no-inherit'
Switched to a new branch 'foo2'
branch 'foo2' set up to track 'origin/foo'.
Switched to a new branch 'foo3'
branch 'foo3' set up to track 'origin/foo'.
Switched to a new branch 'foo4'
branch 'foo4' set up to track 'foo'.
Switched to a new branch 'foo5'
branch 'foo5' set up to track 'foo'.
warning: asked to inherit tracking from 'main', but no remote is set
Switched to a new branch 'main2'
ok 15 - tracking info copied with autoSetupMerge=inherit
# passed all 15 test(s)
1..15
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2070-restore.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2070-restore/.git/
expecting success of 2070.1 'setup':
test_commit first &&
echo first-and-a-half >>first.t &&
git add first.t &&
test_commit second &&
echo one >one &&
echo two >two &&
echo untracked >untracked &&
echo ignored >ignored &&
echo /ignored >.gitignore &&
git add one two .gitignore &&
git update-ref refs/heads/one main
[main (root-commit) 50e526b] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first.t
[main a46c920] second
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 second.t
ok 1 - setup
expecting success of 2070.2 'restore without pathspec is not ok':
test_must_fail git restore &&
test_must_fail git restore --source=first
fatal: you must specify path(s) to restore
fatal: you must specify path(s) to restore
ok 2 - restore without pathspec is not ok
expecting success of 2070.3 'restore a file, ignoring branch of same name':
cat one >expected &&
echo dirty >>one &&
git restore one &&
test_cmp expected one
ok 3 - restore a file, ignoring branch of same name
expecting success of 2070.4 'restore a file on worktree from another ref':
test_when_finished git reset --hard &&
git cat-file blob first:./first.t >expected &&
git restore --source=first first.t &&
test_cmp expected first.t &&
git cat-file blob HEAD:./first.t >expected &&
git show :first.t >actual &&
test_cmp expected actual
HEAD is now at a46c920 second
ok 4 - restore a file on worktree from another ref
expecting success of 2070.5 'restore a file in the index from another ref':
test_when_finished git reset --hard &&
git cat-file blob first:./first.t >expected &&
git restore --source=first --staged first.t &&
git show :first.t >actual &&
test_cmp expected actual &&
git cat-file blob HEAD:./first.t >expected &&
test_cmp expected first.t
HEAD is now at a46c920 second
ok 5 - restore a file in the index from another ref
expecting success of 2070.6 'restore a file in both the index and worktree from another ref':
test_when_finished git reset --hard &&
git cat-file blob first:./first.t >expected &&
git restore --source=first --staged --worktree first.t &&
git show :first.t >actual &&
test_cmp expected actual &&
test_cmp expected first.t
HEAD is now at a46c920 second
ok 6 - restore a file in both the index and worktree from another ref
expecting success of 2070.7 'restore --staged uses HEAD as source':
test_when_finished git reset --hard &&
git cat-file blob :./first.t >expected &&
echo index-dirty >>first.t &&
git add first.t &&
git restore --staged first.t &&
git cat-file blob :./first.t >actual &&
test_cmp expected actual
HEAD is now at a46c920 second
ok 7 - restore --staged uses HEAD as source
expecting success of 2070.8 'restore --worktree --staged uses HEAD as source':
test_when_finished git reset --hard &&
git show HEAD:./first.t >expected &&
echo dirty >>first.t &&
git add first.t &&
git restore --worktree --staged first.t &&
git show :./first.t >actual &&
test_cmp expected actual &&
test_cmp expected first.t
HEAD is now at a46c920 second
ok 8 - restore --worktree --staged uses HEAD as source
expecting success of 2070.9 'restore --ignore-unmerged ignores unmerged entries':
git init unmerged &&
(
cd unmerged &&
echo one >unmerged &&
echo one >common &&
git add unmerged common &&
git commit -m common &&
git switch -c first &&
echo first >unmerged &&
git commit -am first &&
git switch -c second main &&
echo second >unmerged &&
git commit -am second &&
test_must_fail git merge first &&
echo dirty >>common &&
test_must_fail git restore . &&
git restore --ignore-unmerged --quiet . >output 2>&1 &&
git diff common >diff-output &&
test_must_be_empty output &&
test_must_be_empty diff-output
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2070-restore/unmerged/.git/
[main (root-commit) b83edd8] common
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 common
create mode 100644 unmerged
Switched to a new branch 'first'
[first 753ae86] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to a new branch 'second'
[second 06de6fa] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Auto-merging unmerged
CONFLICT (content): Merge conflict in unmerged
Automatic merge failed; fix conflicts and then commit the result.
error: path 'unmerged' is unmerged
ok 9 - restore --ignore-unmerged ignores unmerged entries
expecting success of 2070.10 'restore --staged 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 restore --staged nonempty empty &&
git diff --cached --exit-code
[main 94e3084] create files to be deleted
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+)
create mode 100644 empty
create mode 100644 nonempty
rm 'empty'
rm 'nonempty'
ok 10 - restore --staged adds deleted intent-to-add file back to index
expecting success of 2070.11 'restore --staged invalidates cache tree for deletions':
test_when_finished git reset --hard &&
>new1 &&
>new2 &&
git add new1 new2 &&
# It is important to commit and then reset here, so that the index
# contains a valid cache-tree for the "both" tree.
git commit -m both &&
git reset --soft HEAD^ &&
git restore --staged new1 &&
git commit -m "just new2" &&
git rev-parse HEAD:new2 &&
test_must_fail git rev-parse HEAD:new1
[main 19f4790] both
Author: A U Thor <author@example.com>
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 new1
create mode 100644 new2
[main 2c4724a] just new2
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 new2
e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
fatal: path 'new1' exists on disk, but not in 'HEAD'
HEAD:new1
HEAD is now at 2c4724a just new2
ok 11 - restore --staged invalidates cache tree for deletions
# passed all 11 test(s)
1..11
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2071-restore-patch.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2071-restore-patch/.git/
expecting success of 2071.1 'setup':
mkdir dir &&
echo parent >dir/foo &&
echo dummy >bar &&
git add bar dir/foo &&
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) 758b165] initial
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 bar
create mode 100644 dir/foo
[master 3319288] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup
expecting success of 2071.2 'restore -p without pathspec is fine':
echo q >cmd &&
git restore -p <cmd
diff --git a/bar b/bar
index 7780244..8c999e6 100644
--- a/bar
+++ b/bar
@@ -1 +1 @@
-bar_index
+bar_work
(1/1) Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 2 - restore -p without pathspec is fine
expecting success of 2071.3 'saying "n" does nothing':
set_and_save_state dir/foo work head &&
test_write_lines n n | git restore -p &&
verify_saved_state bar &&
verify_saved_state dir/foo
diff --git a/bar b/bar
index 7780244..8c999e6 100644
--- a/bar
+++ b/bar
@@ -1 +1 @@
-bar_index
+bar_work
(1/1) Discard this hunk from worktree [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) Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 3 - saying "n" does nothing
expecting success of 2071.4 'git restore -p':
set_and_save_state dir/foo work head &&
test_write_lines n y | git restore -p &&
verify_saved_state bar &&
verify_state dir/foo head head
diff --git a/bar b/bar
index 7780244..8c999e6 100644
--- a/bar
+++ b/bar
@@ -1 +1 @@
-bar_index
+bar_work
(1/1) Discard this hunk from worktree [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) Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 4 - git restore -p
expecting success of 2071.5 'git restore -p with staged changes':
set_state dir/foo work index &&
test_write_lines n y | git restore -p &&
verify_saved_state bar &&
verify_state dir/foo index index
diff --git a/bar b/bar
index 7780244..8c999e6 100644
--- a/bar
+++ b/bar
@@ -1 +1 @@
-bar_index
+bar_work
(1/1) Discard this hunk from worktree [y,n,q,a,d,e,?]?
diff --git a/dir/foo b/dir/foo
index 9015a7a..b8f99f5 100644
--- a/dir/foo
+++ b/dir/foo
@@ -1 +1 @@
-index
+work
(1/1) Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 5 - git restore -p with staged changes
expecting success of 2071.6 'git restore -p --source=HEAD':
set_state dir/foo work index &&
# the third n is to get out in case it mistakenly does not apply
test_write_lines n y n | git restore -p --source=HEAD &&
verify_saved_state bar &&
verify_state dir/foo head index
diff --git a/bar b/bar
index 421376d..8c999e6 100644
--- a/bar
+++ b/bar
@@ -1 +1 @@
-dummy
+bar_work
(1/1) Discard this hunk from worktree [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) Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 6 - git restore -p --source=HEAD
expecting success of 2071.7 'git restore -p --source=HEAD^':
set_state dir/foo work index &&
# the third n is to get out in case it mistakenly does not apply
test_write_lines n y n | git restore -p --source=HEAD^ &&
verify_saved_state bar &&
verify_state dir/foo parent index
diff --git b/bar a/bar
index 8c999e6..421376d 100644
--- b/bar
+++ a/bar
@@ -1 +1 @@
-bar_work
+dummy
(1/1) Apply this hunk to worktree [y,n,q,a,d,e,?]?
diff --git b/dir/foo a/dir/foo
index b8f99f5..9676f5b 100644
--- b/dir/foo
+++ a/dir/foo
@@ -1 +1 @@
-work
+parent
(1/1) Apply this hunk to worktree [y,n,q,a,d,e,?]?
ok 7 - git restore -p --source=HEAD^
expecting success of 2071.8 'git restore -p --source=HEAD^...':
set_state dir/foo work index &&
# the third n is to get out in case it mistakenly does not apply
test_write_lines n y n | git restore -p --source=HEAD^... &&
verify_saved_state bar &&
verify_state dir/foo parent index
diff --git b/bar a/bar
index 8c999e6..421376d 100644
--- b/bar
+++ a/bar
@@ -1 +1 @@
-bar_work
+dummy
(1/1) Apply this hunk to worktree [y,n,q,a,d,e,?]?
diff --git b/dir/foo a/dir/foo
index b8f99f5..9676f5b 100644
--- b/dir/foo
+++ a/dir/foo
@@ -1 +1 @@
-work
+parent
(1/1) Apply this hunk to worktree [y,n,q,a,d,e,?]?
ok 8 - git restore -p --source=HEAD^...
expecting success of 2071.9 'git restore -p handles deletion':
set_state dir/foo work index &&
rm dir/foo &&
test_write_lines n y | git restore -p &&
verify_saved_state bar &&
verify_state dir/foo index index
diff --git a/bar b/bar
index 7780244..8c999e6 100644
--- a/bar
+++ b/bar
@@ -1 +1 @@
-bar_index
+bar_work
(1/1) Discard this hunk from worktree [y,n,q,a,d,e,?]?
diff --git a/dir/foo b/dir/foo
deleted file mode 100644
index 9015a7a..0000000
--- a/dir/foo
+++ /dev/null
@@ -1 +0,0 @@
-index
(1/1) Discard deletion from worktree [y,n,q,a,d,?]?
ok 9 - git restore -p handles deletion
expecting success of 2071.10 'path limiting works: dir':
set_state dir/foo work head &&
test_write_lines y n | git restore -p dir &&
verify_saved_state bar &&
verify_state dir/foo head head
diff --git a/dir/foo b/dir/foo
index 564b12f..b8f99f5 100644
--- a/dir/foo
+++ b/dir/foo
@@ -1 +1 @@
-head
+work
(1/1) Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 10 - path limiting works: dir
expecting success of 2071.11 'path limiting works: -- dir':
set_state dir/foo work head &&
test_write_lines y n | git restore -p -- dir &&
verify_saved_state bar &&
verify_state dir/foo head head
diff --git a/dir/foo b/dir/foo
index 564b12f..b8f99f5 100644
--- a/dir/foo
+++ b/dir/foo
@@ -1 +1 @@
-head
+work
(1/1) Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 11 - path limiting works: -- dir
expecting success of 2071.12 'path limiting works: HEAD^ -- dir':
set_state dir/foo work head &&
# the third n is to get out in case it mistakenly does not apply
test_write_lines y n n | git restore -p --source=HEAD^ -- dir &&
verify_saved_state bar &&
verify_state dir/foo parent head
diff --git b/dir/foo a/dir/foo
index b8f99f5..9676f5b 100644
--- b/dir/foo
+++ a/dir/foo
@@ -1 +1 @@
-work
+parent
(1/1) Apply this hunk to worktree [y,n,q,a,d,e,?]?
ok 12 - path limiting works: HEAD^ -- dir
expecting success of 2071.13 'path limiting works: foo inside dir':
set_state dir/foo work head &&
# the third n is to get out in case it mistakenly does not apply
test_write_lines y n n | (cd dir && git restore -p foo) &&
verify_saved_state bar &&
verify_state dir/foo head head
diff --git a/dir/foo b/dir/foo
index 564b12f..b8f99f5 100644
--- a/dir/foo
+++ b/dir/foo
@@ -1 +1 @@
-head
+work
(1/1) Discard this hunk from worktree [y,n,q,a,d,e,?]?
ok 13 - path limiting works: foo inside dir
expecting success of 2071.14 'none of this moved HEAD':
verify_saved_head
ok 14 - none of this moved HEAD
# passed all 14 test(s)
1..14
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2072-restore-pathspec-file.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2072-restore-pathspec-file/.git/
expecting success of 2072.1 'setup':
test_commit file0 &&
mkdir dir1 &&
echo 1 >dir1/file &&
echo 1 >fileA.t &&
echo 1 >fileB.t &&
echo 1 >fileC.t &&
echo 1 >fileD.t &&
git add dir1 fileA.t fileB.t fileC.t fileD.t &&
git commit -m "files 1" &&
echo 2 >dir1/file &&
echo 2 >fileA.t &&
echo 2 >fileB.t &&
echo 2 >fileC.t &&
echo 2 >fileD.t &&
git add dir1 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 <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file0.t
[master 17aa47d] files 1
Author: A U Thor <author@example.com>
5 files changed, 5 insertions(+)
create mode 100644 dir1/file
create mode 100644 fileA.t
create mode 100644 fileB.t
create mode 100644 fileC.t
create mode 100644 fileD.t
[master 4c6d82b] files 2
Author: A U Thor <author@example.com>
5 files changed, 5 insertions(+), 5 deletions(-)
ok 1 - setup
expecting success of 2072.2 '--pathspec-from-file from stdin':
restore_checkpoint &&
echo fileA.t | git restore --pathspec-from-file=- --source=HEAD^1 &&
cat >expect <<-\EOF &&
M fileA.t
EOF
verify_expect
HEAD is now at 4c6d82b files 2
ok 2 - --pathspec-from-file from stdin
expecting success of 2072.3 '--pathspec-from-file from file':
restore_checkpoint &&
echo fileA.t >list &&
git restore --pathspec-from-file=list --source=HEAD^1 &&
cat >expect <<-\EOF &&
M fileA.t
EOF
verify_expect
HEAD is now at 4c6d82b files 2
ok 3 - --pathspec-from-file from file
expecting success of 2072.4 'NUL delimiters':
restore_checkpoint &&
printf "fileA.t\0fileB.t\0" | git restore --pathspec-from-file=- --pathspec-file-nul --source=HEAD^1 &&
cat >expect <<-\EOF &&
M fileA.t
M fileB.t
EOF
verify_expect
HEAD is now at 4c6d82b files 2
ok 4 - NUL delimiters
expecting success of 2072.5 'LF delimiters':
restore_checkpoint &&
printf "fileA.t\nfileB.t\n" | git restore --pathspec-from-file=- --source=HEAD^1 &&
cat >expect <<-\EOF &&
M fileA.t
M fileB.t
EOF
verify_expect
HEAD is now at 4c6d82b files 2
ok 5 - LF delimiters
expecting success of 2072.6 'no trailing delimiter':
restore_checkpoint &&
printf "fileA.t\nfileB.t" | git restore --pathspec-from-file=- --source=HEAD^1 &&
cat >expect <<-\EOF &&
M fileA.t
M fileB.t
EOF
verify_expect
HEAD is now at 4c6d82b files 2
ok 6 - no trailing delimiter
expecting success of 2072.7 'CRLF delimiters':
restore_checkpoint &&
printf "fileA.t\r\nfileB.t\r\n" | git restore --pathspec-from-file=- --source=HEAD^1 &&
cat >expect <<-\EOF &&
M fileA.t
M fileB.t
EOF
verify_expect
HEAD is now at 4c6d82b files 2
ok 7 - CRLF delimiters
expecting success of 2072.8 'quotes':
restore_checkpoint &&
cat >list <<-\EOF &&
"file\101.t"
EOF
git restore --pathspec-from-file=list --source=HEAD^1 &&
cat >expect <<-\EOF &&
M fileA.t
EOF
verify_expect
HEAD is now at 4c6d82b files 2
ok 8 - quotes
expecting success of 2072.9 'quotes not compatible with --pathspec-file-nul':
restore_checkpoint &&
cat >list <<-\EOF &&
"file\101.t"
EOF
test_must_fail git restore --pathspec-from-file=list --pathspec-file-nul --source=HEAD^1
HEAD is now at 4c6d82b files 2
error: pathspec '"file\101.t"
' did not match any file(s) known to git
ok 9 - quotes not compatible with --pathspec-file-nul
expecting success of 2072.10 'only touches what was listed':
restore_checkpoint &&
printf "fileB.t\nfileC.t\n" | git restore --pathspec-from-file=- --source=HEAD^1 &&
cat >expect <<-\EOF &&
M fileB.t
M fileC.t
EOF
verify_expect
HEAD is now at 4c6d82b files 2
ok 10 - only touches what was listed
expecting success of 2072.11 'error conditions':
restore_checkpoint &&
echo fileA.t >list &&
>empty_list &&
test_must_fail git restore --pathspec-from-file=list --patch --source=HEAD^1 2>err &&
test_i18ngrep -e "options .--pathspec-from-file. and .--patch. cannot be used together" err &&
test_must_fail git restore --pathspec-from-file=list --source=HEAD^1 -- fileA.t 2>err &&
test_i18ngrep -e ".--pathspec-from-file. and pathspec arguments cannot be used together" err &&
test_must_fail git restore --pathspec-file-nul --source=HEAD^1 2>err &&
test_i18ngrep -e "the option .--pathspec-file-nul. requires .--pathspec-from-file." err &&
test_must_fail git restore --pathspec-from-file=empty_list --source=HEAD^1 2>err &&
test_i18ngrep -e "you must specify path(s) to restore" err
HEAD is now at 4c6d82b files 2
fatal: options '--pathspec-from-file' and '--patch' cannot be used together
fatal: '--pathspec-from-file' and pathspec arguments cannot be used together
fatal: the option '--pathspec-file-nul' requires '--pathspec-from-file'
fatal: you must specify path(s) to restore
ok 11 - error conditions
expecting success of 2072.12 'wildcard pathspec matches file in subdirectory':
restore_checkpoint &&
echo "*file" | git restore --pathspec-from-file=- --source=HEAD^1 &&
cat >expect <<-\EOF &&
M dir1/file
EOF
verify_expect
HEAD is now at 4c6d82b files 2
ok 12 - wildcard pathspec matches file in subdirectory
# passed all 12 test(s)
1..12
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2081-parallel-checkout-collisions.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2081-parallel-checkout-collisions/.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
ok 1 # skip setup (missing CASE_INSENSITIVE_FS)
ok 2 # skip worker detects basename collision (missing CASE_INSENSITIVE_FS)
ok 3 # skip worker detects dirname collision (missing CASE_INSENSITIVE_FS)
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 4 # skip do not follow symlinks colliding with leading dir (missing CASE_INSENSITIVE_FS of SYMLINKS,CASE_INSENSITIVE_FS)
ok 5 # skip collision report on clone (w/ racy file creation) (missing CASE_INSENSITIVE_FS)
ok 6 # skip collision report on clone (w/ colliding peer after the detected entry) (missing CASE_INSENSITIVE_FS of CASE_INSENSITIVE_FS,!MINGW,!CYGWIN)
# passed all 6 test(s)
1..6
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2082-parallel-checkout-attributes.sh ***
expecting success of 2082.1 'parallel-checkout with ident':
set_checkout_config 2 0 &&
git init ident &&
(
cd ident &&
echo "A ident" >.gitattributes &&
echo "\$Id\$" >A &&
echo "\$Id\$" >B &&
git add -A &&
git commit -m id &&
rm A B &&
test_checkout_workers 2 git reset --hard &&
hexsz=$(test_oid hexsz) &&
grep -E "\\\$Id: [0-9a-f]{$hexsz} \\\$" A &&
grep "\\\$Id\\\$" B
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2082-parallel-checkout-attributes/ident/.git/
[master (root-commit) f770bc4] id
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
create mode 100644 .gitattributes
create mode 100644 A
create mode 100644 B
HEAD is now at f770bc4 id
$Id: 055c8729cdcc372500a08db659c045e16c4409fb $
$Id$
ok 1 - parallel-checkout with ident
expecting success of 2082.2 'parallel-checkout with re-encoding':
set_checkout_config 2 0 &&
git init encoding &&
(
cd encoding &&
echo text >utf8-text &&
write_utf16 <utf8-text >utf16-text &&
echo "A working-tree-encoding=UTF-16" >.gitattributes &&
cp utf16-text A &&
cp utf8-text B &&
git add A B .gitattributes &&
git commit -m encoding &&
# Check that A is stored in UTF-8
git cat-file -p :A >A.internal &&
test_cmp_bin utf8-text A.internal &&
rm A B &&
test_checkout_workers 2 git checkout A B &&
# Check that A (and only A) is re-encoded during checkout
test_cmp_bin utf16-text A &&
test_cmp_bin utf8-text B
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2082-parallel-checkout-attributes/encoding/.git/
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
[master (root-commit) eb6a843] encoding
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
create mode 100644 .gitattributes
create mode 100644 A
create mode 100644 B
Updated 2 paths from the index
ok 2 - parallel-checkout with re-encoding
expecting success of 2082.3 'parallel-checkout with eol conversions':
set_checkout_config 2 0 &&
git init eol &&
(
cd eol &&
printf "multi\r\nline\r\ntext" >crlf-text &&
printf "multi\nline\ntext" >lf-text &&
git config core.autocrlf false &&
echo "A eol=crlf" >.gitattributes &&
cp crlf-text A &&
cp lf-text B &&
git add A B .gitattributes &&
git commit -m eol &&
# Check that A is stored with LF format
git cat-file -p :A >A.internal &&
test_cmp_bin lf-text A.internal &&
rm A B &&
test_checkout_workers 2 git checkout A B &&
# Check that A (and only A) is converted to CRLF during checkout
test_cmp_bin crlf-text A &&
test_cmp_bin lf-text B
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2082-parallel-checkout-attributes/eol/.git/
[master (root-commit) cd8ac0d] eol
Author: A U Thor <author@example.com>
3 files changed, 7 insertions(+)
create mode 100644 .gitattributes
create mode 100644 A
create mode 100644 B
Updated 2 paths from the index
ok 3 - parallel-checkout with eol conversions
expecting success of 2082.4 'parallel-checkout and external filter':
set_checkout_config 2 0 &&
git init filter &&
(
cd filter &&
write_script <<-\EOF rot13.sh &&
tr \
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" \
"nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM"
EOF
git config filter.rot13.clean "\"$(pwd)/rot13.sh\"" &&
git config filter.rot13.smudge "\"$(pwd)/rot13.sh\"" &&
git config filter.rot13.required true &&
echo abcd >original &&
echo nopq >rot13 &&
echo "A filter=rot13" >.gitattributes &&
cp original A &&
cp original B &&
cp original C &&
git add A B C .gitattributes &&
git commit -m filter &&
# Check that A (and only A) was cleaned
git cat-file -p :A >A.internal &&
test_cmp rot13 A.internal &&
git cat-file -p :B >B.internal &&
test_cmp original B.internal &&
git cat-file -p :C >C.internal &&
test_cmp original C.internal &&
rm A B C *.internal &&
test_checkout_workers 2 git checkout A B C &&
# Check that A (and only A) was smudged during checkout
test_cmp original A &&
test_cmp original B &&
test_cmp original C
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2082-parallel-checkout-attributes/filter/.git/
[master (root-commit) 9fb524e] filter
Author: A U Thor <author@example.com>
4 files changed, 4 insertions(+)
create mode 100644 .gitattributes
create mode 100644 A
create mode 100644 B
create mode 100644 C
Updated 3 paths from the index
ok 4 - parallel-checkout and external filter
expecting success of 2082.5 'parallel-checkout and delayed checkout':
test_config_global filter.delay.process \
"test-tool rot13-filter --always-delay --log=\"$(pwd)/delayed.log\" clean smudge delay" &&
test_config_global filter.delay.required true &&
echo "abcd" >original &&
echo "nopq" >rot13 &&
git init delayed &&
(
cd delayed &&
echo "*.d filter=delay" >.gitattributes &&
cp ../original W.d &&
cp ../original X.d &&
cp ../original Y &&
cp ../original Z &&
git add -A &&
git commit -m delayed &&
# Check that *.d files were cleaned
git cat-file -p :W.d >W.d.internal &&
test_cmp W.d.internal ../rot13 &&
git cat-file -p :X.d >X.d.internal &&
test_cmp X.d.internal ../rot13 &&
git cat-file -p :Y >Y.internal &&
test_cmp Y.internal ../original &&
git cat-file -p :Z >Z.internal &&
test_cmp Z.internal ../original &&
rm *
) &&
set_checkout_config 2 0 &&
test_checkout_workers 2 git -C delayed checkout -f &&
verify_checkout delayed &&
# Check that the *.d files got to the delay queue and were filtered
grep "smudge W.d .* \[DELAYED\]" delayed.log &&
grep "smudge X.d .* \[DELAYED\]" delayed.log &&
test_cmp delayed/W.d original &&
test_cmp delayed/X.d original &&
# Check that the parallel-eligible entries went to the right queue and
# were not filtered
! grep "smudge Y .* \[DELAYED\]" delayed.log &&
! grep "smudge Z .* \[DELAYED\]" delayed.log &&
test_cmp delayed/Y original &&
test_cmp delayed/Z original
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2082-parallel-checkout-attributes/delayed/.git/
[master (root-commit) 73aa10e] delayed
Author: A U Thor <author@example.com>
5 files changed, 5 insertions(+)
create mode 100644 .gitattributes
create mode 100644 W.d
create mode 100644 X.d
create mode 100644 Y
create mode 100644 Z
IN: smudge W.d treeish=73aa10e96740aa088d4dcea378e1df6a64c5577d blob=0c362bbfebfbae31b3762aada18b9d0119486316 5 [OK] -- [DELAYED]
IN: smudge X.d treeish=73aa10e96740aa088d4dcea378e1df6a64c5577d blob=0c362bbfebfbae31b3762aada18b9d0119486316 5 [OK] -- [DELAYED]
ok 5 - parallel-checkout and delayed checkout
# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2100-update-cache-badpath.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2100-update-cache-badpath/.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 2100.1 'git update-index --add to add various paths.': git update-index --add -- path0 path1 path2/file2 path3/file3
ok 1 - git update-index --add to add various paths.
expecting success of 2100.2 'git update-index to add conflicting path path0/file0 should fail.': test_must_fail git update-index --add -- path0/file0
error: 'path0/file0' appears as both a file and as a directory
error: path0/file0: cannot add to the index - missing --add option?
fatal: Unable to process path path0/file0
ok 2 - git update-index to add conflicting path path0/file0 should fail.
expecting success of 2100.3 'git update-index to add conflicting path path1/file1 should fail.': test_must_fail git update-index --add -- path1/file1
error: 'path1/file1' appears as both a file and as a directory
error: path1/file1: cannot add to the index - missing --add option?
fatal: Unable to process path path1/file1
ok 3 - git update-index to add conflicting path path1/file1 should fail.
expecting success of 2100.4 'git update-index to add conflicting path path2 should fail.': test_must_fail git update-index --add -- path2
error: 'path2' appears as both a file and as a directory
error: path2: cannot add to the index - missing --add option?
fatal: Unable to process path path2
ok 4 - git update-index to add conflicting path path2 should fail.
expecting success of 2100.5 'git update-index to add conflicting path path3 should fail.': test_must_fail git update-index --add -- path3
error: 'path3' appears as both a file and as a directory
error: path3: cannot add to the index - missing --add option?
fatal: Unable to process path path3
ok 5 - git update-index to add conflicting path path3 should fail.
# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2101-update-index-reupdate.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2101-update-index-reupdate/.git/
expecting success of 2101.1 'update-index --add':
echo hello world >file1 &&
echo goodbye people >file2 &&
git update-index --add file1 file2 &&
git ls-files -s >current &&
cat >expected <<-EOF &&
100644 $(git hash-object file1) 0 file1
100644 $(git hash-object file2) 0 file2
EOF
cmp current expected
ok 1 - update-index --add
expecting success of 2101.2 'update-index --again':
rm -f file1 &&
echo hello everybody >file2 &&
if git update-index --again
then
echo should have refused to remove file1
exit 1
else
echo happy - failed as expected
fi &&
git ls-files -s >current &&
cmp current expected
error: file1: does not exist and --remove not passed
fatal: Unable to process path file1
happy - failed as expected
ok 2 - update-index --again
expecting success of 2101.3 'update-index --remove --again':
git update-index --remove --again &&
git ls-files -s >current &&
cat >expected <<-EOF &&
100644 $(git hash-object file2) 0 file2
EOF
cmp current expected
ok 3 - update-index --remove --again
expecting success of 2101.4 'first commit': git commit -m initial
[master (root-commit) 823d2a7] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file2
ok 4 - first commit
expecting success of 2101.5 'update-index again':
mkdir -p dir1 &&
echo hello world >dir1/file3 &&
echo goodbye people >file2 &&
git update-index --add file2 dir1/file3 &&
echo hello everybody >file2 &&
echo happy >dir1/file3 &&
git update-index --again &&
git ls-files -s >current &&
cat >expected <<-EOF &&
100644 $(git hash-object dir1/file3) 0 dir1/file3
100644 $(git hash-object file2) 0 file2
EOF
cmp current expected
ok 5 - update-index again
expecting success of 2101.6 'update-index --update from subdir':
echo not so happy >file2 &&
(cd dir1 &&
cat ../file2 >file3 &&
git update-index --again
) &&
git ls-files -s >current &&
cat >expected <<-EOF &&
100644 $(git hash-object dir1/file3) 0 dir1/file3
100644 $file2 0 file2
EOF
test_cmp expected current
ok 6 - update-index --update from subdir
expecting success of 2101.7 'update-index --update with pathspec':
echo very happy >file2 &&
cat file2 >dir1/file3 &&
git update-index --again dir1/ &&
git ls-files -s >current &&
cat >expected <<-EOF &&
100644 $(git hash-object dir1/file3) 0 dir1/file3
100644 $file2 0 file2
EOF
cmp current expected
ok 7 - update-index --update with pathspec
# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2102-update-index-symlinks.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2102-update-index-symlinks/.git/
expecting success of 2102.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 2102.2 'modify the symbolic link':
printf new-file > symlink &&
git update-index symlink
ok 2 - modify the symbolic link
expecting success of 2102.3 'the index entry must still be a symbolic link':
case "$(git ls-files --stage --cached symlink)" in
120000" "*symlink) echo pass;;
*) echo fail; git ls-files --stage --cached symlink; false;;
esac
pass
ok 3 - the index entry must still be a symbolic link
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2103-update-index-ignore-missing.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2103-update-index-ignore-missing/.git/
expecting success of 2103.1 'basics':
>one &&
>two &&
>three &&
# need --add when adding
test_must_fail git update-index one &&
test -z "$(git ls-files)" &&
git update-index --add one &&
test zone = "z$(git ls-files)" &&
# update-index is atomic
echo 1 >one &&
test_must_fail git update-index one two &&
echo "M one" >expect &&
git diff-files --name-status >actual &&
test_cmp expect actual &&
git update-index --add one two three &&
test_write_lines one three two >expect &&
git ls-files >actual &&
test_cmp expect actual &&
test_tick &&
(
test_create_repo xyzzy &&
cd xyzzy &&
>file &&
git add file &&
git commit -m "sub initial"
) &&
git add xyzzy &&
test_tick &&
git commit -m initial &&
git tag initial
error: one: cannot add to the index - missing --add option?
fatal: Unable to process path one
error: two: cannot add to the index - missing --add option?
fatal: Unable to process path two
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2103-update-index-ignore-missing/xyzzy/.git/
[master (root-commit) a40d181] sub initial
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 file
warning: adding embedded git repository: xyzzy
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 <url> xyzzy
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached xyzzy
hint:
hint: See "git help submodule" for more information.
[master (root-commit) ce14d7f] initial
Author: A U Thor <author@example.com>
4 files changed, 2 insertions(+)
create mode 100644 one
create mode 100644 three
create mode 100644 two
create mode 160000 xyzzy
ok 1 - basics
expecting success of 2103.2 '--ignore-missing --refresh':
git reset --hard initial &&
echo 2 >one &&
test_must_fail git update-index --refresh &&
echo 1 >one &&
git update-index --refresh &&
rm -f two &&
test_must_fail git update-index --refresh &&
git update-index --ignore-missing --refresh
HEAD is now at ce14d7f initial
one: needs update
two: needs update
ok 2 - --ignore-missing --refresh
expecting success of 2103.3 '--unmerged --refresh':
git reset --hard initial &&
info=$(git ls-files -s one | sed -e "s/ 0 / 1 /") &&
git rm --cached one &&
echo "$info" | git update-index --index-info &&
test_must_fail git update-index --refresh &&
git update-index --unmerged --refresh &&
echo 2 >two &&
test_must_fail git update-index --unmerged --refresh >actual &&
grep two actual &&
! grep one actual &&
! grep three actual
HEAD is now at ce14d7f initial
rm 'one'
one: needs merge
two: needs update
ok 3 - --unmerged --refresh
expecting success of 2103.4 '--ignore-submodules --refresh (1)':
git reset --hard initial &&
rm -f two &&
test_must_fail git update-index --ignore-submodules --refresh
HEAD is now at ce14d7f initial
two: needs update
ok 4 - --ignore-submodules --refresh (1)
expecting success of 2103.5 '--ignore-submodules --refresh (2)':
git reset --hard initial &&
test_tick &&
(
cd xyzzy &&
git commit -m "sub second" --allow-empty
) &&
test_must_fail git update-index --refresh &&
test_must_fail git update-index --ignore-missing --refresh &&
git update-index --ignore-submodules --refresh
HEAD is now at ce14d7f initial
[master 66f0d66] sub second
Author: A U Thor <author@example.com>
xyzzy: needs update
xyzzy: needs update
ok 5 - --ignore-submodules --refresh (2)
# passed all 5 test(s)
1..5
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2104-update-index-skip-worktree.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2105-update-index-gitfile.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2105-update-index-gitfile/.git/
expecting success of 2105.1 'submodule with absolute .git file':
mkdir sub1 &&
(cd sub1 &&
git init &&
REAL="$(pwd)/.real" &&
mv .git "$REAL" &&
echo "gitdir: $REAL" >.git &&
test_commit first)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2105-update-index-gitfile/sub1/.git/
[master (root-commit) 50e526b] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first.t
ok 1 - submodule with absolute .git file
expecting success of 2105.2 'add gitlink to absolute .git file':
git update-index --add -- sub1
ok 2 - add gitlink to absolute .git file
expecting success of 2105.3 'submodule with relative .git file':
mkdir sub2 &&
(cd sub2 &&
git init &&
mv .git .real &&
echo "gitdir: .real" >.git &&
test_commit first)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2105-update-index-gitfile/sub2/.git/
[master (root-commit) 50e526b] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first.t
ok 3 - submodule with relative .git file
expecting success of 2105.4 'add gitlink to relative .git file':
git update-index --add -- sub2
ok 4 - add gitlink to relative .git file
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2106-update-index-assume-unchanged.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2106-update-index-assume-unchanged/.git/
expecting success of 2106.1 'setup':
: >file &&
git add file &&
git commit -m initial &&
git branch other &&
echo upstream >file &&
git add file &&
git commit -m upstream
[master (root-commit) 6ce5622] initial
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 file
[master fbda113] upstream
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - setup
expecting success of 2106.2 'do not switch branches with dirty file':
git reset --hard &&
git checkout other &&
echo dirt >file &&
git update-index --assume-unchanged file &&
test_must_fail git checkout - 2>err &&
test_i18ngrep overwritten err
HEAD is now at fbda113 upstream
Switched to branch 'other'
error: Your local changes to the following files would be overwritten by checkout:
ok 2 - do not switch branches with dirty file
# passed all 2 test(s)
1..2
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2107-update-index-basic.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2107-update-index-basic/.git/
expecting success of 2107.1 'update-index --nonsense fails':
test_must_fail git update-index --nonsense 2>msg &&
test -s msg
ok 1 - update-index --nonsense fails
expecting success of 2107.2 'update-index --nonsense dumps usage':
test_expect_code 129 git update-index --nonsense 2>err &&
test_i18ngrep "[Uu]sage: git update-index" err
usage: git update-index [<options>] [--] [<file>...]
ok 2 - update-index --nonsense dumps usage
expecting success of 2107.3 'update-index -h with corrupt index':
mkdir broken &&
(
cd broken &&
git init &&
>.git/index &&
test_expect_code 129 git update-index -h >usage 2>&1
) &&
test_i18ngrep "[Uu]sage: git update-index" broken/usage
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2107-update-index-basic/broken/.git/
usage: git update-index [<options>] [--] [<file>...]
ok 3 - update-index -h with corrupt index
expecting success of 2107.4 '--cacheinfo complains of missing arguments':
test_must_fail git update-index --cacheinfo
error: option 'cacheinfo' expects <mode>,<sha1>,<path>
ok 4 - --cacheinfo complains of missing arguments
expecting success of 2107.5 '--cacheinfo does not accept blob null sha1':
echo content >file &&
git add file &&
git rev-parse :file >expect &&
test_must_fail git update-index --verbose --cacheinfo 100644 $ZERO_OID file >out &&
git rev-parse :file >actual &&
test_cmp expect actual &&
cat >expect <<-\EOF &&
add 'file'
EOF
test_cmp expect out
error: cache entry has null sha1: file
fatal: Unable to write new index file
ok 5 - --cacheinfo does not accept blob null sha1
expecting success of 2107.6 '--cacheinfo does not accept gitlink null sha1':
git init submodule &&
(cd submodule && test_commit foo) &&
git add submodule &&
git rev-parse :submodule >expect &&
test_must_fail git update-index --cacheinfo 160000 $ZERO_OID submodule &&
git rev-parse :submodule >actual &&
test_cmp expect actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2107-update-index-basic/submodule/.git/
[master (root-commit) ddd63c9] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.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 <url> 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.
error: cache entry has null sha1: submodule
fatal: Unable to write new index file
ok 6 - --cacheinfo does not accept gitlink null sha1
expecting success of 2107.7 '--cacheinfo mode,sha1,path (new syntax)':
echo content >file &&
git hash-object -w --stdin <file >expect &&
git update-index --add --cacheinfo 100644 "$(cat expect)" file &&
git rev-parse :file >actual &&
test_cmp expect actual &&
git update-index --add --verbose --cacheinfo "100644,$(cat expect),elif" >out &&
git rev-parse :elif >actual &&
test_cmp expect actual &&
cat >expect <<-\EOF &&
add 'elif'
EOF
test_cmp expect out
ok 7 - --cacheinfo mode,sha1,path (new syntax)
expecting success of 2107.8 '.lock files cleaned up':
mkdir cleanup &&
(
cd cleanup &&
mkdir worktree &&
git init repo &&
cd repo &&
git config core.worktree ../../worktree &&
# --refresh triggers late setup_work_tree,
# active_cache_changed is zero, rollback_lock_file fails
git update-index --refresh --verbose >out &&
test_must_be_empty out &&
! test -f .git/index.lock
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2107-update-index-basic/cleanup/repo/.git/
ok 8 - .lock files cleaned up
expecting success of 2107.9 '--chmod=+x and chmod=-x in the same argument list':
>A &&
>B &&
git add A B &&
git update-index --verbose --chmod=+x A --chmod=-x B >out &&
cat >expect <<-\EOF &&
add 'A'
chmod +x 'A'
add 'B'
chmod -x 'B'
EOF
test_cmp expect out &&
cat >expect <<-EOF &&
100755 $EMPTY_BLOB 0 A
100644 $EMPTY_BLOB 0 B
EOF
git ls-files --stage A B >actual &&
test_cmp expect actual
ok 9 - --chmod=+x and chmod=-x in the same argument list
# passed all 9 test(s)
1..9
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2108-update-index-refresh-racy.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2108-update-index-refresh-racy/.git/
expecting success of 2108.1 'setup':
reset_files &&
# we are calling reset_files() a couple of times during tests;
# test-tool chmtime does not change the ctime; to not weaken
# or even break our tests, disable ctime-checks entirely
git config core.trustctime false &&
git add file other &&
git commit -m "initial import"
[master (root-commit) 4c25839] initial import
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 file
create mode 100644 other
ok 1 - setup
expecting success of 2108.2 '--refresh has no racy timestamps to fix':
reset_files &&
# set the index time far enough to the future;
# it must be at least 3 seconds for VFAT
test_set_magic_mtime .git/index +60 &&
git update-index --refresh &&
test_is_magic_mtime .git/index +60
ok 2 - --refresh has no racy timestamps to fix
expecting success of 2108.3 '--refresh should fix racy timestamp':
reset_files &&
update_assert_changed --refresh
--- .git/test-mtime-expect 2023-09-16 19:12:20.132513773 +0000
+++ .git/test-mtime-actual 2023-09-16 19:12:20.140513871 +0000
@@ -1 +1 @@
-1234567890
+1694891540
ok 3 - --refresh should fix racy timestamp
expecting success of 2108.4 '--really-refresh should fix racy timestamp':
reset_files &&
update_assert_changed --really-refresh
--- .git/test-mtime-expect 2023-09-16 19:12:20.216514798 +0000
+++ .git/test-mtime-actual 2023-09-16 19:12:20.220514846 +0000
@@ -1 +1 @@
-1234567890
+1694891540
ok 4 - --really-refresh should fix racy timestamp
expecting success of 2108.5 '--refresh should fix racy timestamp if other file needs update':
reset_files &&
echo content2 >other &&
test_set_magic_mtime other &&
update_assert_changed --refresh
other: needs update
--- .git/test-mtime-expect 2023-09-16 19:12:20.344516358 +0000
+++ .git/test-mtime-actual 2023-09-16 19:12:20.352516456 +0000
@@ -1 +1 @@
-1234567890
+1694891540
ok 5 - --refresh should fix racy timestamp if other file needs update
expecting success of 2108.6 '--refresh should fix racy timestamp if racy file needs update':
reset_files &&
echo content2 >file &&
test_set_magic_mtime file &&
update_assert_changed --refresh
file: needs update
--- .git/test-mtime-expect 2023-09-16 19:12:20.428517382 +0000
+++ .git/test-mtime-actual 2023-09-16 19:12:20.436517480 +0000
@@ -1 +1 @@
-1234567890
+1694891540
ok 6 - --refresh should fix racy timestamp if racy file needs update
# passed all 6 test(s)
1..6
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2200-add-update.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <author@example.com>
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':
git ls-files dir1/sub1 >out &&
test_must_be_empty out
ok 3 - update noticed a removal
expecting success of 2200.4 'update touched correct path':
git diff-files --name-status dir2/sub3 >out &&
test_must_be_empty out
ok 4 - update touched correct path
expecting success of 2200.5 'update did not touch other tracked files':
echo "M check" >expect &&
git diff-files --name-status check >actual &&
test_cmp expect actual &&
echo "M top" >expect &&
git diff-files --name-status top >actual &&
test_cmp expect actual
ok 5 - update did not touch other tracked files
expecting success of 2200.6 'update did not touch untracked files':
git ls-files dir2/other >out &&
test_must_be_empty out
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':
git diff-files --name-status dir1 >out &&
test_must_be_empty out
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 &&
git diff-files >out &&
test_must_be_empty out
ok 12 - add everything changed
expecting success of 2200.13 'touch and then add -u':
touch check &&
git add -u &&
git diff-files >out &&
test_must_be_empty out
ok 13 - touch and then add -u
expecting success of 2200.14 'touch and then add explicitly':
touch check &&
git add check &&
git diff-files >out &&
test_must_be_empty out
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) &&
git count-objects -v >objects_before &&
echo changed >>check &&
rm -f top &&
git add -n -u >actual &&
after=$(git ls-files -s check top) &&
git count-objects -v >objects_after &&
test "$before" = "$after" &&
test_cmp objects_before objects_after &&
test_cmp expect actual
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" || return 1
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2201-add-update-typechange.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2201-add-update-typechange/.git/
expecting success of 2201.1 'setup':
>xyzzy &&
_empty=$(git hash-object --stdin <xyzzy) &&
>yomin &&
>caskly &&
if test_have_prereq SYMLINKS; then
ln -s frotz nitfol &&
T_letter=T
else
printf %s frotz > nitfol &&
T_letter=M
fi &&
mkdir rezrov &&
>rezrov/bozbar &&
git add caskly xyzzy yomin nitfol rezrov/bozbar &&
test_tick &&
git commit -m initial
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 (root-commit) 8dc0761] initial
Author: A U Thor <author@example.com>
5 files changed, 1 insertion(+)
create mode 100644 caskly
create mode 120000 nitfol
create mode 100644 rezrov/bozbar
create mode 100644 xyzzy
create mode 100644 yomin
ok 1 - setup
expecting success of 2201.2 'modify':
rm -f xyzzy yomin nitfol caskly &&
# caskly disappears (not a submodule)
mkdir caskly &&
# nitfol changes from symlink to regular
>nitfol &&
# rezrov/bozbar disappears
rm -fr rezrov &&
if test_have_prereq SYMLINKS; then
ln -s xyzzy rezrov
else
printf %s xyzzy > rezrov
fi &&
# xyzzy disappears (not a submodule)
mkdir xyzzy &&
echo gnusto >xyzzy/bozbar &&
# yomin gets replaced with a submodule
mkdir yomin &&
>yomin/yomin &&
(
cd yomin &&
git init &&
git add yomin &&
git commit -m "sub initial"
) &&
yomin=$(GIT_DIR=yomin/.git git rev-parse HEAD) &&
# yonk is added and then turned into a submodule
# this should appear as T in diff-files and as A in diff-index
>yonk &&
git add yonk &&
rm -f yonk &&
mkdir yonk &&
>yonk/yonk &&
(
cd yonk &&
git init &&
git add yonk &&
git commit -m "sub initial"
) &&
yonk=$(GIT_DIR=yonk/.git git rev-parse HEAD) &&
# zifmia is added and then removed
# this should appear in diff-files but not in diff-index.
>zifmia &&
git add zifmia &&
rm -f zifmia &&
mkdir zifmia &&
{
git ls-tree -r HEAD |
sed -e "s/^/:/" -e "
/ caskly/{
s/ caskly/ $ZERO_OID D&/
s/blob/000000/
}
/ nitfol/{
s/ nitfol/ $ZERO_OID $T_letter&/
s/blob/100644/
}
/ rezrov.bozbar/{
s/ rezrov.bozbar/ $ZERO_OID D&/
s/blob/000000/
}
/ xyzzy/{
s/ xyzzy/ $ZERO_OID D&/
s/blob/000000/
}
/ yomin/{
s/ yomin/ $ZERO_OID T&/
s/blob/160000/
}
"
} >expect &&
{
cat expect &&
echo ":100644 160000 $_empty $ZERO_OID T yonk" &&
echo ":100644 000000 $_empty $ZERO_OID D zifmia"
} >expect-files &&
{
cat expect &&
echo ":000000 160000 $ZERO_OID $ZERO_OID A yonk"
} >expect-index &&
{
echo "100644 $_empty 0 nitfol" &&
echo "160000 $yomin 0 yomin" &&
echo "160000 $yonk 0 yonk"
} >expect-final
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2201-add-update-typechange/yomin/.git/
[master (root-commit) 9da2848] sub initial
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 yomin
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2201-add-update-typechange/yonk/.git/
[master (root-commit) 9cc3160] sub initial
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 yonk
ok 2 - modify
expecting success of 2201.3 'diff-files':
git diff-files --raw >actual &&
test_cmp expect-files actual
ok 3 - diff-files
expecting success of 2201.4 'diff-index':
git diff-index --raw HEAD -- >actual &&
test_cmp expect-index actual
ok 4 - diff-index
expecting success of 2201.5 'add -u':
rm -f ".git/saved-index" &&
cp -p ".git/index" ".git/saved-index" &&
git add -u &&
git ls-files -s >actual &&
test_cmp expect-final actual
ok 5 - add -u
expecting success of 2201.6 'commit -a':
if test -f ".git/saved-index"
then
rm -f ".git/index" &&
mv ".git/saved-index" ".git/index"
fi &&
git commit -m "second" -a &&
git ls-files -s >actual &&
test_cmp expect-final actual &&
rm -f .git/index &&
git read-tree HEAD &&
git ls-files -s >actual &&
test_cmp expect-final actual
[master 0f3d2ce] second
Author: A U Thor <author@example.com>
6 files changed, 2 insertions(+), 1 deletion(-)
delete mode 100644 caskly
mode change 120000 => 100644 nitfol
delete mode 100644 rezrov/bozbar
delete mode 100644 xyzzy
mode change 100644 => 160000 yomin
create mode 160000 yonk
ok 6 - commit -a
# passed all 6 test(s)
1..6
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2202-add-addremove.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <author@example.com>
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2080-parallel-checkout-basics.sh ***
expecting success of 2080.1 'setup repo for checkout with various types of changes':
test_config_global protocol.file.allow always &&
git init sub &&
(
cd sub &&
git checkout -b B2 &&
echo B2 >file &&
git add file &&
git commit -m file &&
git checkout -b B1 &&
echo B1 >file &&
git add file &&
git commit -m file
) &&
git init various &&
(
cd various &&
git checkout -b B1 &&
mkdir a c e &&
echo a/a >a/a &&
echo b >b &&
echo c/c >c/c &&
test_ln_s_add c d &&
echo e/e >e/e &&
git submodule add ../sub f &&
git submodule add ../sub g &&
test_ln_s_add c h &&
echo "B1 i" >i &&
test_ln_s_add c j &&
git submodule add -b B1 ../sub k &&
mkdir l &&
echo l/l >l/l &&
git add . &&
git commit -m B1 &&
git checkout -b B2 &&
git rm -rf :^.gitmodules :^k &&
mkdir b d f &&
echo a >a &&
echo b/b >b/b &&
test_ln_s_add b c &&
echo d/d >d/d &&
git submodule add ../sub e &&
echo f/f >f/f &&
test_ln_s_add b g &&
git submodule add ../sub h &&
echo "B2 i" >i &&
test_ln_s_add b j &&
git -C k checkout B2 &&
mkdir m &&
echo m/m >m/m &&
git add . &&
git commit -m B2 &&
git checkout --recurse-submodules B1
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/sub/.git/
Switched to a new branch 'B2'
[B2 (root-commit) 880a0eb] file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
Switched to a new branch 'B1'
[B1 0f06b39] file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/various/.git/
Switched to a new branch 'B1'
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
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/various/f'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/various/g'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/various/k'...
done.
[B1 (root-commit) 46a23ce] B1
Author: A U Thor <author@example.com>
13 files changed, 22 insertions(+)
create mode 100644 .gitmodules
create mode 100644 a/a
create mode 100644 b
create mode 100644 c/c
create mode 120000 d
create mode 100644 e/e
create mode 160000 f
create mode 160000 g
create mode 120000 h
create mode 100644 i
create mode 120000 j
create mode 160000 k
create mode 100644 l/l
Switched to a new branch 'B2'
rm 'a/a'
rm 'b'
rm 'c/c'
rm 'd'
rm 'e/e'
rm 'f'
rm 'g'
rm 'h'
rm 'i'
rm 'j'
rm 'l/l'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/various/e'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/various/h'...
done.
Switched to a new branch 'B2'
branch 'B2' set up to track 'origin/B2'.
[B2 176cae8] B2
Author: A U Thor <author@example.com>
19 files changed, 17 insertions(+), 17 deletions(-)
create mode 100644 a
delete mode 100644 a/a
delete mode 100644 b
create mode 100644 b/b
create mode 120000 c
delete mode 100644 c/c
delete mode 120000 d
create mode 100644 d/d
rename f => e (100%)
delete mode 100644 e/e
create mode 100644 f/f
mode change 160000 => 120000 g
mode change 120000 => 160000 h
delete mode 100644 l/l
create mode 100644 m/m
Switched to branch 'B1'
ok 1 - setup repo for checkout with various types of changes
expecting success of 2080.2 'sequential checkout':
repo=various_$mode &&
cp -R -P various $repo &&
# The just copied files have more recent timestamps than their
# associated index entries. So refresh the cached timestamps
# to avoid an "entry not up-to-date" error from `git checkout`.
# We only have to do this for the submodules as `git checkout`
# will already refresh the superproject index before performing
# the up-to-date check.
#
git -C $repo submodule foreach "git update-index --refresh" &&
set_checkout_config $workers $threshold &&
test_checkout_workers $expected_workers \
git -C $repo checkout --recurse-submodules B2 &&
verify_checkout $repo
Entering 'f'
Entering 'g'
Entering 'k'
Switched to branch 'B2'
ok 2 - sequential checkout
expecting success of 2080.3 'parallel checkout':
repo=various_$mode &&
cp -R -P various $repo &&
# The just copied files have more recent timestamps than their
# associated index entries. So refresh the cached timestamps
# to avoid an "entry not up-to-date" error from `git checkout`.
# We only have to do this for the submodules as `git checkout`
# will already refresh the superproject index before performing
# the up-to-date check.
#
git -C $repo submodule foreach "git update-index --refresh" &&
set_checkout_config $workers $threshold &&
test_checkout_workers $expected_workers \
git -C $repo checkout --recurse-submodules B2 &&
verify_checkout $repo
Entering 'f'
Entering 'g'
Entering 'k'
Switched to branch 'B2'
ok 3 - parallel checkout
expecting success of 2080.4 'sequential-fallback checkout':
repo=various_$mode &&
cp -R -P various $repo &&
# The just copied files have more recent timestamps than their
# associated index entries. So refresh the cached timestamps
# to avoid an "entry not up-to-date" error from `git checkout`.
# We only have to do this for the submodules as `git checkout`
# will already refresh the superproject index before performing
# the up-to-date check.
#
git -C $repo submodule foreach "git update-index --refresh" &&
set_checkout_config $workers $threshold &&
test_checkout_workers $expected_workers \
git -C $repo checkout --recurse-submodules B2 &&
verify_checkout $repo
Entering 'f'
Entering 'g'
Entering 'k'
Switched to branch 'B2'
ok 4 - sequential-fallback checkout
expecting success of 2080.5 'parallel checkout on clone':
test_config_global protocol.file.allow always &&
repo=various_${mode}_clone &&
set_checkout_config $workers $threshold &&
test_checkout_workers $expected_workers \
git clone --recurse-submodules --branch B2 various $repo &&
verify_checkout $repo
Cloning into 'various_parallel_clone'...
done.
Submodule 'e' (/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/sub) registered for path 'e'
Submodule 'h' (/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/sub) registered for path 'h'
Submodule 'k' (/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/sub) registered for path 'k'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/various_parallel_clone/e'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/various_parallel_clone/h'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/various_parallel_clone/k'...
done.
Submodule path 'e': checked out '0f06b39781e370351121d9fbfe1aed95ed7794c8'
Submodule path 'h': checked out '0f06b39781e370351121d9fbfe1aed95ed7794c8'
Submodule path 'k': checked out '880a0ebc1b2c60184bf29ea8f144cd7c40ab60f8'
ok 5 - parallel checkout on clone
expecting success of 2080.6 'sequential-fallback checkout on clone':
test_config_global protocol.file.allow always &&
repo=various_${mode}_clone &&
set_checkout_config $workers $threshold &&
test_checkout_workers $expected_workers \
git clone --recurse-submodules --branch B2 various $repo &&
verify_checkout $repo
Cloning into 'various_sequential-fallback_clone'...
done.
Submodule 'e' (/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/sub) registered for path 'e'
Submodule 'h' (/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/sub) registered for path 'h'
Submodule 'k' (/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/sub) registered for path 'k'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/various_sequential-fallback_clone/e'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/various_sequential-fallback_clone/h'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/various_sequential-fallback_clone/k'...
done.
Submodule path 'e': checked out '0f06b39781e370351121d9fbfe1aed95ed7794c8'
Submodule path 'h': checked out '0f06b39781e370351121d9fbfe1aed95ed7794c8'
Submodule path 'k': checked out '880a0ebc1b2c60184bf29ea8f144cd7c40ab60f8'
ok 6 - sequential-fallback checkout on clone
expecting success of 2080.7 'compare the working trees':
rm -rf various_*/.git &&
rm -rf various_*/*/.git &&
# We use `git diff` instead of `diff -r` because the latter would
# follow symlinks, and not all `diff` implementations support the
# `--no-dereference` option.
#
git diff --no-index various_sequential various_parallel &&
git diff --no-index various_sequential various_parallel_clone &&
git diff --no-index various_sequential various_sequential-fallback &&
git diff --no-index various_sequential various_sequential-fallback_clone
ok 7 - compare the working trees
expecting success of 2080.8 'submodules can use parallel checkout':
set_checkout_config 2 0 &&
git init super &&
(
cd super &&
git init sub &&
test_commit -C sub A &&
test_commit -C sub B &&
git submodule add ./sub &&
git commit -m sub &&
rm sub/* &&
test_checkout_workers 2 git checkout --recurse-submodules .
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/super/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/super/sub/.git/
[master (root-commit) 0ddfaf1] A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A.t
[master d9df450] B
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 B.t
Adding existing repo at 'sub' to the index
[master (root-commit) 00b6c10] sub
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 sub
Migrating git directory of 'sub' from
'/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/super/sub/.git' to
'/<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/super/.git/modules/sub'
Updated 0 paths from the index
ok 8 - submodules can use parallel checkout
expecting success of 2080.9 'parallel checkout respects --[no]-force':
set_checkout_config 2 0 &&
git init dirty &&
(
cd dirty &&
mkdir D &&
test_commit D/F &&
test_commit F &&
rm -rf D &&
echo changed >D &&
echo changed >F.t &&
# We expect 0 workers because there is nothing to be done
test_checkout_workers 0 git checkout HEAD &&
test_path_is_file D &&
grep changed D &&
grep changed F.t &&
test_checkout_workers 2 git checkout --force HEAD &&
test_path_is_dir D &&
grep D/F D/F.t &&
grep F F.t
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/dirty/.git/
[master (root-commit) e516e44] D/F
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 D/F.t
[master a9126ab] F
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 F.t
D D/F.t
M F.t
changed
changed
D/F
F
ok 9 - parallel checkout respects --[no]-force
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 2080.10 'parallel checkout checks for symlinks in leading dirs':
set_checkout_config 2 0 &&
git init symlinks &&
(
cd symlinks &&
mkdir D untracked &&
# Commit 2 files to have enough work for 2 parallel workers
test_commit D/A &&
test_commit D/B &&
rm -rf D &&
ln -s untracked D &&
test_checkout_workers 2 git checkout --force HEAD &&
! test -h D &&
grep D/A D/A.t &&
grep D/B D/B.t
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/symlinks/.git/
[master (root-commit) dce6a14] D/A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 D/A.t
[master 59586d4] D/B
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 D/B.t
D/A
D/B
ok 10 - parallel checkout checks for symlinks in leading dirs
expecting success of 2080.11 '"git checkout ." report should not include failed entries':
test_config_global filter.delay.process \
"test-tool rot13-filter --always-delay --log=delayed.log clean smudge delay" &&
test_config_global filter.delay.required true &&
test_config_global filter.cat.clean cat &&
test_config_global filter.cat.smudge cat &&
test_config_global filter.cat.required true &&
set_checkout_config 2 0 &&
git init failed_entries &&
(
cd failed_entries &&
cat >.gitattributes <<-EOF &&
*delay* filter=delay
parallel-ineligible* filter=cat
EOF
echo a >missing-delay.a &&
echo a >parallel-ineligible.a &&
echo a >parallel-eligible.a &&
echo b >success-delay.b &&
echo b >parallel-ineligible.b &&
echo b >parallel-eligible.b &&
git add -A &&
git commit -m files &&
a_blob="$(git rev-parse :parallel-ineligible.a)" &&
rm .git/objects/$(test_oid_to_path $a_blob) &&
rm *.a *.b &&
test_checkout_workers 2 test_must_fail git checkout . 2>err &&
# All *.b entries should succeed and all *.a entries should fail:
# - missing-delay.a: the delay filter will drop this path
# - parallel-*.a: the blob will be missing
#
grep "Updated 3 paths from the index" err &&
test_stdout_line_count = 3 ls *.b &&
! ls *.a
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2080-parallel-checkout-basics/failed_entries/.git/
[master (root-commit) d1e22ca] files
Author: A U Thor <author@example.com>
7 files changed, 8 insertions(+)
create mode 100644 .gitattributes
create mode 100644 missing-delay.a
create mode 100644 parallel-eligible.a
create mode 100644 parallel-eligible.b
create mode 100644 parallel-ineligible.a
create mode 100644 parallel-ineligible.b
create mode 100644 success-delay.b
Updated 3 paths from the index
ls: cannot access '*.a': No such file or directory
ok 11 - "git checkout ." report should not include failed entries
# passed all 11 test(s)
1..11
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2204-add-ignored.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2204-add-ignored/.git/
expecting success of 2204.1 'setup':
mkdir sub dir dir/sub &&
echo sub >.gitignore &&
echo ign >>.gitignore &&
for p in . sub dir dir/sub
do
>"$p/ign" &&
>"$p/file" || exit 1
done
ok 1 - setup
expecting success of 2204.2 'no complaints for unignored file':
rm -f .git/index &&
git add "$i" &&
git ls-files "$i" >out &&
test -s out
ok 2 - no complaints for unignored file
expecting success of 2204.3 'no complaints for unignored dir/file':
rm -f .git/index &&
git add "$i" &&
git ls-files "$i" >out &&
test -s out
ok 3 - no complaints for unignored dir/file
expecting success of 2204.4 'no complaints for unignored dir':
rm -f .git/index &&
git add "$i" &&
git ls-files "$i" >out &&
test -s out
ok 4 - no complaints for unignored dir
expecting success of 2204.5 'no complaints for unignored d*':
rm -f .git/index &&
git add "$i" &&
git ls-files "$i" >out &&
test -s out
ok 5 - no complaints for unignored d*
expecting success of 2204.6 'complaints for ignored ign':
rm -f .git/index &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
ok 6 - complaints for ignored ign
expecting success of 2204.7 'complaints for ignored ign output':
test_i18ngrep -e "Use -f if" err
hint: Use -f if you really want to add them.
ok 7 - complaints for ignored ign output
expecting success of 2204.8 'complaints for ignored ign with unignored file':
rm -f .git/index &&
test_must_fail git add "$i" file 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
ok 8 - complaints for ignored ign with unignored file
expecting success of 2204.9 'complaints for ignored ign with unignored file output':
test_i18ngrep -e "Use -f if" err
hint: Use -f if you really want to add them.
ok 9 - complaints for ignored ign with unignored file output
expecting success of 2204.10 'complaints for ignored dir/ign':
rm -f .git/index &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
ok 10 - complaints for ignored dir/ign
expecting success of 2204.11 'complaints for ignored dir/ign output':
test_i18ngrep -e "Use -f if" err
hint: Use -f if you really want to add them.
ok 11 - complaints for ignored dir/ign output
expecting success of 2204.12 'complaints for ignored dir/ign with unignored file':
rm -f .git/index &&
test_must_fail git add "$i" file 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
ok 12 - complaints for ignored dir/ign with unignored file
expecting success of 2204.13 'complaints for ignored dir/ign with unignored file output':
test_i18ngrep -e "Use -f if" err
hint: Use -f if you really want to add them.
ok 13 - complaints for ignored dir/ign with unignored file output
expecting success of 2204.14 'complaints for ignored dir/sub':
rm -f .git/index &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
ok 14 - complaints for ignored dir/sub
expecting success of 2204.15 'complaints for ignored dir/sub output':
test_i18ngrep -e "Use -f if" err
hint: Use -f if you really want to add them.
ok 15 - complaints for ignored dir/sub output
expecting success of 2204.16 'complaints for ignored dir/sub with unignored file':
rm -f .git/index &&
test_must_fail git add "$i" file 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
ok 16 - complaints for ignored dir/sub with unignored file
expecting success of 2204.17 'complaints for ignored dir/sub with unignored file output':
test_i18ngrep -e "Use -f if" err
hint: Use -f if you really want to add them.
ok 17 - complaints for ignored dir/sub with unignored file output
expecting success of 2204.18 'complaints for ignored dir/sub/ign':
rm -f .git/index &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
ok 18 - complaints for ignored dir/sub/ign
expecting success of 2204.19 'complaints for ignored dir/sub/ign output':
test_i18ngrep -e "Use -f if" err
hint: Use -f if you really want to add them.
ok 19 - complaints for ignored dir/sub/ign output
expecting success of 2204.20 'complaints for ignored dir/sub/ign with unignored file':
rm -f .git/index &&
test_must_fail git add "$i" file 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
ok 20 - complaints for ignored dir/sub/ign with unignored file
expecting success of 2204.21 'complaints for ignored dir/sub/ign with unignored file output':
test_i18ngrep -e "Use -f if" err
hint: Use -f if you really want to add them.
ok 21 - complaints for ignored dir/sub/ign with unignored file output
expecting success of 2204.22 'complaints for ignored sub/file':
rm -f .git/index &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
ok 22 - complaints for ignored sub/file
expecting success of 2204.23 'complaints for ignored sub/file output':
test_i18ngrep -e "Use -f if" err
hint: Use -f if you really want to add them.
ok 23 - complaints for ignored sub/file output
expecting success of 2204.24 'complaints for ignored sub/file with unignored file':
rm -f .git/index &&
test_must_fail git add "$i" file 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
ok 24 - complaints for ignored sub/file with unignored file
expecting success of 2204.25 'complaints for ignored sub/file with unignored file output':
test_i18ngrep -e "Use -f if" err
hint: Use -f if you really want to add them.
ok 25 - complaints for ignored sub/file with unignored file output
expecting success of 2204.26 'complaints for ignored sub':
rm -f .git/index &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
ok 26 - complaints for ignored sub
expecting success of 2204.27 'complaints for ignored sub output':
test_i18ngrep -e "Use -f if" err
hint: Use -f if you really want to add them.
ok 27 - complaints for ignored sub output
expecting success of 2204.28 'complaints for ignored sub with unignored file':
rm -f .git/index &&
test_must_fail git add "$i" file 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
ok 28 - complaints for ignored sub with unignored file
expecting success of 2204.29 'complaints for ignored sub with unignored file output':
test_i18ngrep -e "Use -f if" err
hint: Use -f if you really want to add them.
ok 29 - complaints for ignored sub with unignored file output
expecting success of 2204.30 'complaints for ignored sub/file':
rm -f .git/index &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
ok 30 - complaints for ignored sub/file
expecting success of 2204.31 'complaints for ignored sub/file output':
test_i18ngrep -e "Use -f if" err
hint: Use -f if you really want to add them.
ok 31 - complaints for ignored sub/file output
expecting success of 2204.32 'complaints for ignored sub/file with unignored file':
rm -f .git/index &&
test_must_fail git add "$i" file 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
ok 32 - complaints for ignored sub/file with unignored file
expecting success of 2204.33 'complaints for ignored sub/file with unignored file output':
test_i18ngrep -e "Use -f if" err
hint: Use -f if you really want to add them.
ok 33 - complaints for ignored sub/file with unignored file output
expecting success of 2204.34 'complaints for ignored sub/ign':
rm -f .git/index &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
ok 34 - complaints for ignored sub/ign
expecting success of 2204.35 'complaints for ignored sub/ign output':
test_i18ngrep -e "Use -f if" err
hint: Use -f if you really want to add them.
ok 35 - complaints for ignored sub/ign output
expecting success of 2204.36 'complaints for ignored sub/ign with unignored file':
rm -f .git/index &&
test_must_fail git add "$i" file 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
ok 36 - complaints for ignored sub/ign with unignored file
expecting success of 2204.37 'complaints for ignored sub/ign with unignored file output':
test_i18ngrep -e "Use -f if" err
hint: Use -f if you really want to add them.
ok 37 - complaints for ignored sub/ign with unignored file output
expecting success of 2204.38 'complaints for ignored sub in dir':
rm -f .git/index &&
(
cd dir &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
)
ok 38 - complaints for ignored sub in dir
expecting success of 2204.39 'complaints for ignored sub in dir output':
(
cd dir &&
test_i18ngrep -e "Use -f if" err
)
hint: Use -f if you really want to add them.
ok 39 - complaints for ignored sub in dir output
expecting success of 2204.40 'complaints for ignored sub/file in dir':
rm -f .git/index &&
(
cd dir &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
)
ok 40 - complaints for ignored sub/file in dir
expecting success of 2204.41 'complaints for ignored sub/file in dir output':
(
cd dir &&
test_i18ngrep -e "Use -f if" err
)
hint: Use -f if you really want to add them.
ok 41 - complaints for ignored sub/file in dir output
expecting success of 2204.42 'complaints for ignored sub/ign in dir':
rm -f .git/index &&
(
cd dir &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
)
ok 42 - complaints for ignored sub/ign in dir
expecting success of 2204.43 'complaints for ignored sub/ign in dir output':
(
cd dir &&
test_i18ngrep -e "Use -f if" err
)
hint: Use -f if you really want to add them.
ok 43 - complaints for ignored sub/ign in dir output
expecting success of 2204.44 'complaints for ignored ign in sub':
rm -f .git/index &&
(
cd sub &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
)
ok 44 - complaints for ignored ign in sub
expecting success of 2204.45 'complaints for ignored ign in sub output':
(
cd sub &&
test_i18ngrep -e "Use -f if" err
)
hint: Use -f if you really want to add them.
ok 45 - complaints for ignored ign in sub output
expecting success of 2204.46 'complaints for ignored file in sub':
rm -f .git/index &&
(
cd sub &&
test_must_fail git add "$i" 2>err &&
git ls-files "$i" >out &&
test_must_be_empty out
)
ok 46 - complaints for ignored file in sub
expecting success of 2204.47 'complaints for ignored file in sub output':
(
cd sub &&
test_i18ngrep -e "Use -f if" err
)
hint: Use -f if you really want to add them.
ok 47 - complaints for ignored file in sub output
# passed all 47 test(s)
1..47
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2203-add-intent.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2203-add-intent/.git/
expecting success of 2203.1 'intent to add':
test_commit 1 &&
git rm 1.t &&
echo hello >1.t &&
echo hello >file &&
echo hello >elif &&
git add -N file &&
git add elif &&
git add -N 1.t
[master (root-commit) d0dcf97] 1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 1.t
rm '1.t'
ok 1 - intent to add
expecting success of 2203.2 'git status':
git status --porcelain | grep -v actual >actual &&
cat >expect <<-\EOF &&
DA 1.t
A elif
A file
EOF
test_cmp expect actual
ok 2 - git status
expecting success of 2203.3 'git status with porcelain v2':
git status --porcelain=v2 | grep -v "^?" >actual &&
nam1=$(echo 1 | git hash-object --stdin) &&
nam2=$(git hash-object elif) &&
cat >expect <<-EOF &&
1 DA N... 100644 000000 100644 $nam1 $ZERO_OID 1.t
1 A. N... 000000 100644 100644 $ZERO_OID $nam2 elif
1 .A N... 000000 000000 100644 $ZERO_OID $ZERO_OID file
EOF
test_cmp expect actual
ok 3 - git status with porcelain v2
expecting success of 2203.4 'check result of "add -N"':
git ls-files -s file >actual &&
empty=$(git hash-object --stdin </dev/null) &&
echo "100644 $empty 0 file" >expect &&
test_cmp expect actual
ok 4 - check result of "add -N"
expecting success of 2203.5 'intent to add is just an ordinary empty blob':
git add -u &&
git ls-files -s file >actual &&
git ls-files -s elif | sed -e "s/elif/file/" >expect &&
test_cmp expect actual
ok 5 - intent to add is just an ordinary empty blob
expecting success of 2203.6 'intent to add does not clobber existing paths':
git add -N file elif &&
empty=$(git hash-object --stdin </dev/null) &&
git ls-files -s >actual &&
! grep "$empty" actual
ok 6 - intent to add does not clobber existing paths
expecting success of 2203.7 'i-t-a entry is simply ignored':
test_tick &&
git commit -a -m initial &&
git reset --hard &&
echo xyzzy >rezrov &&
echo frotz >nitfol &&
git add rezrov &&
git add -N nitfol &&
git commit -m second &&
test $(git ls-tree HEAD -- nitfol | wc -l) = 0 &&
test $(git diff --name-only HEAD -- nitfol | wc -l) = 1 &&
test $(git diff --name-only -- nitfol | wc -l) = 1
[master b7cca08] initial
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+), 1 deletion(-)
create mode 100644 elif
create mode 100644 file
HEAD is now at b7cca08 initial
[master b70ad0b] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 rezrov
ok 7 - i-t-a entry is simply ignored
expecting success of 2203.8 'can commit with an unrelated i-t-a entry in index':
git reset --hard &&
echo bozbar >rezrov &&
echo frotz >nitfol &&
git add rezrov &&
git add -N nitfol &&
git commit -m partial rezrov
HEAD is now at b70ad0b second
[master 1ed15b5] partial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 8 - can commit with an unrelated i-t-a entry in index
expecting success of 2203.9 'can "commit -a" with an i-t-a entry':
git reset --hard &&
: >nitfol &&
git add -N nitfol &&
git commit -a -m all
HEAD is now at 1ed15b5 partial
[master 415f3ad] all
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 nitfol
ok 9 - can "commit -a" with an i-t-a entry
expecting success of 2203.10 'cache-tree invalidates i-t-a paths':
git reset --hard &&
mkdir dir &&
: >dir/foo &&
git add dir/foo &&
git commit -m foo &&
: >dir/bar &&
git add -N dir/bar &&
git diff --name-only >actual &&
echo dir/bar >expect &&
test_cmp expect actual &&
git write-tree >/dev/null &&
git diff --name-only >actual &&
echo dir/bar >expect &&
test_cmp expect actual
HEAD is now at 415f3ad all
[master 03f6a20] foo
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dir/foo
ok 10 - cache-tree invalidates i-t-a paths
expecting success of 2203.11 'cache-tree does not ignore dir that has i-t-a entries':
git init ita-in-dir &&
(
cd ita-in-dir &&
mkdir 2 &&
for f in 1 2/1 2/2 3
do
echo "$f" >"$f" || return 1
done &&
git add 1 2/2 3 &&
git add -N 2/1 &&
git commit -m committed &&
git ls-tree -r HEAD >actual &&
grep 2/2 actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2203-add-intent/ita-in-dir/.git/
[master (root-commit) 7b0eb4f] committed
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
create mode 100644 1
create mode 100644 2/2
create mode 100644 3
100644 blob 6b8a6f549c42bad0c52be670caa297a269052aa7 2/2
ok 11 - cache-tree does not ignore dir that has i-t-a entries
expecting success of 2203.12 'cache-tree does skip dir that becomes empty':
rm -fr ita-in-dir &&
git init ita-in-dir &&
(
cd ita-in-dir &&
mkdir -p 1/2/3 &&
echo 4 >1/2/3/4 &&
git add -N 1/2/3/4 &&
git write-tree >actual &&
echo $EMPTY_TREE >expected &&
test_cmp expected actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2203-add-intent/ita-in-dir/.git/
ok 12 - cache-tree does skip dir that becomes empty
expecting success of 2203.13 'commit: ita entries ignored in empty initial commit check':
git init empty-initial-commit &&
(
cd empty-initial-commit &&
: >one &&
git add -N one &&
test_must_fail git commit -m nothing-new-here
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2203-add-intent/empty-initial-commit/.git/
On branch master
Initial commit
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
new file: one
no changes added to commit (use "git add" and/or "git commit -a")
ok 13 - commit: ita entries ignored in empty initial commit check
expecting success of 2203.14 'commit: ita entries ignored in empty commit check':
git init empty-subsequent-commit &&
(
cd empty-subsequent-commit &&
test_commit one &&
: >two &&
git add -N two &&
test_must_fail git commit -m nothing-new-here
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2203-add-intent/empty-subsequent-commit/.git/
[master (root-commit) 4331c28] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
new file: two
no changes added to commit (use "git add" and/or "git commit -a")
ok 14 - commit: ita entries ignored in empty commit check
expecting success of 2203.15 'rename detection finds the right names':
git init rename-detection &&
(
cd rename-detection &&
echo contents >first &&
git add first &&
git commit -m first &&
mv first third &&
git add -N third &&
git status | grep -v "^?" >actual.1 &&
test_i18ngrep "renamed: *first -> third" actual.1 &&
git status --porcelain | grep -v "^?" >actual.2 &&
cat >expected.2 <<-\EOF &&
R first -> third
EOF
test_cmp expected.2 actual.2 &&
hash=$(git hash-object third) &&
git status --porcelain=v2 | grep -v "^?" >actual.3 &&
cat >expected.3 <<-EOF &&
2 .R N... 100644 100644 100644 $hash $hash R100 third first
EOF
test_cmp expected.3 actual.3 &&
git diff --stat >actual.4 &&
cat >expected.4 <<-EOF &&
first => third | 0
1 file changed, 0 insertions(+), 0 deletions(-)
EOF
test_cmp expected.4 actual.4 &&
git diff --cached --stat >actual.5 &&
test_must_be_empty actual.5
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2203-add-intent/rename-detection/.git/
[master (root-commit) 0bad72c] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first
renamed: first -> third
ok 15 - rename detection finds the right names
expecting success of 2203.16 'double rename detection in status':
git init rename-detection-2 &&
(
cd rename-detection-2 &&
echo contents >first &&
git add first &&
git commit -m first &&
git mv first second &&
mv second third &&
git add -N third &&
git status | grep -v "^?" >actual.1 &&
test_i18ngrep "renamed: *first -> second" actual.1 &&
test_i18ngrep "renamed: *second -> third" actual.1 &&
git status --porcelain | grep -v "^?" >actual.2 &&
cat >expected.2 <<-\EOF &&
R first -> second
R second -> third
EOF
test_cmp expected.2 actual.2 &&
hash=$(git hash-object third) &&
git status --porcelain=v2 | grep -v "^?" >actual.3 &&
cat >expected.3 <<-EOF &&
2 R. N... 100644 100644 100644 $hash $hash R100 second first
2 .R N... 100644 100644 100644 $hash $hash R100 third second
EOF
test_cmp expected.3 actual.3
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2203-add-intent/rename-detection-2/.git/
[master (root-commit) 0bad72c] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first
renamed: first -> second
renamed: second -> third
ok 16 - double rename detection in status
expecting success of 2203.17 'i-t-a files shown as new for "diff", "diff-files"; not-new for "diff --cached"':
git reset --hard &&
: >empty &&
content="foo" &&
echo "$content" >not-empty &&
hash_e=$(git hash-object empty) &&
hash_n=$(git hash-object not-empty) &&
cat >expect.diff_p <<-EOF &&
diff --git a/empty b/empty
new file mode 100644
index 0000000..$(git rev-parse --short $hash_e)
diff --git a/not-empty b/not-empty
new file mode 100644
index 0000000..$(git rev-parse --short $hash_n)
--- /dev/null
+++ b/not-empty
@@ -0,0 +1 @@
+$content
EOF
cat >expect.diff_s <<-EOF &&
create mode 100644 empty
create mode 100644 not-empty
EOF
cat >expect.diff_a <<-EOF &&
:000000 100644 0000000 0000000 A$(printf "\t")empty
:000000 100644 0000000 0000000 A$(printf "\t")not-empty
EOF
git add -N empty not-empty &&
git diff >actual &&
test_cmp expect.diff_p actual &&
git diff --summary >actual &&
test_cmp expect.diff_s actual &&
git diff-files -p >actual &&
test_cmp expect.diff_p actual &&
git diff-files --abbrev >actual &&
test_cmp expect.diff_a actual &&
git diff --cached >actual &&
test_must_be_empty actual
HEAD is now at 03f6a20 foo
ok 17 - i-t-a files shown as new for "diff", "diff-files"; not-new for "diff --cached"
expecting success of 2203.18 '"diff HEAD" includes ita as new files':
git reset --hard &&
echo new >new-ita &&
oid=$(git hash-object new-ita) &&
oid=$(git rev-parse --short $oid) &&
git add -N new-ita &&
git diff HEAD >actual &&
cat >expected <<-EOF &&
diff --git a/new-ita b/new-ita
new file mode 100644
index 0000000..$oid
--- /dev/null
+++ b/new-ita
@@ -0,0 +1 @@
+new
EOF
test_cmp expected actual
HEAD is now at 03f6a20 foo
ok 18 - "diff HEAD" includes ita as new files
expecting success of 2203.19 'apply --intent-to-add':
git reset --hard &&
echo new >new-ita &&
git add -N new-ita &&
git diff >expected &&
grep "new file" expected &&
git reset --hard &&
git apply --intent-to-add expected &&
git diff >actual &&
test_cmp expected actual
HEAD is now at 03f6a20 foo
new file mode 100644
HEAD is now at 03f6a20 foo
ok 19 - apply --intent-to-add
# passed all 19 test(s)
1..19
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2205-add-worktree-config.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2205-add-worktree-config/.git/
expecting success of 2205.1 '1a: setup--config worktree':
mkdir test1 &&
(
cd test1 &&
test_create_repo repo &&
git --git-dir="repo/.git" config core.worktree "$(pwd)" &&
mkdir -p outside-tracked outside-untracked &&
mkdir -p repo/inside-tracked repo/inside-untracked &&
>file-tracked &&
>file-untracked &&
>outside-tracked/file &&
>outside-untracked/file &&
>repo/file-tracked &&
>repo/file-untracked &&
>repo/inside-tracked/file &&
>repo/inside-untracked/file &&
cat >expect-tracked-unsorted <<-EOF &&
../file-tracked
../outside-tracked/file
file-tracked
inside-tracked/file
EOF
cat >expect-untracked-unsorted <<-EOF &&
../file-untracked
../outside-untracked/file
file-untracked
inside-untracked/file
EOF
cat >expect-all-dir-unsorted <<-EOF &&
../file-untracked
../file-tracked
../outside-untracked/
../outside-tracked/
./
EOF
cat expect-tracked-unsorted expect-untracked-unsorted >expect-all-unsorted &&
cat >.gitignore <<-EOF
.gitignore
actual-*
expect-*
EOF
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2205-add-worktree-config/test1/repo/.git/
ok 1 - 1a: setup--config worktree
expecting success of 2205.2 '1b: pre-add all':
(
cd test1 &&
local parent_dir="$(pwd)" &&
git -C repo ls-files -o --exclude-standard "$parent_dir" >actual-all-unsorted &&
sort actual-all-unsorted >actual-all &&
sort expect-all-unsorted >expect-all &&
test_cmp expect-all actual-all
)
ok 2 - 1b: pre-add all
expecting success of 2205.3 '1c: pre-add dir all':
(
cd test1 &&
local parent_dir="$(pwd)" &&
git -C repo ls-files -o --directory --exclude-standard "$parent_dir" >actual-all-dir-unsorted &&
sort actual-all-dir-unsorted >actual-all &&
sort expect-all-dir-unsorted >expect-all &&
test_cmp expect-all actual-all
)
ok 3 - 1c: pre-add dir all
expecting success of 2205.4 '1d: post-add tracked':
(
cd test1 &&
local parent_dir="$(pwd)" &&
(
cd repo &&
git add file-tracked &&
git add inside-tracked &&
git add ../outside-tracked &&
git add "$parent_dir/file-tracked" &&
git ls-files "$parent_dir" >../actual-tracked-unsorted
) &&
sort actual-tracked-unsorted >actual-tracked &&
sort expect-tracked-unsorted >expect-tracked &&
test_cmp expect-tracked actual-tracked
)
ok 4 - 1d: post-add tracked
expecting success of 2205.5 '1e: post-add untracked':
(
cd test1 &&
local parent_dir="$(pwd)" &&
git -C repo ls-files -o --exclude-standard "$parent_dir" >actual-untracked-unsorted &&
sort actual-untracked-unsorted >actual-untracked &&
sort expect-untracked-unsorted >expect-untracked &&
test_cmp expect-untracked actual-untracked
)
ok 5 - 1e: post-add untracked
expecting success of 2205.6 '2a: setup--set git-dir':
mkdir test2 &&
(
cd test2 &&
test_create_repo repo &&
# create two foreign repositories that should remain untracked
test_create_repo repo-outside &&
test_create_repo repo/repo-inside &&
mkdir -p repo/inside-tracked repo/inside-untracked &&
>repo/file-tracked &&
>repo/file-untracked &&
>repo/inside-tracked/file &&
>repo/inside-untracked/file &&
>repo-outside/file &&
>repo/repo-inside/file &&
cat >expect-tracked-unsorted <<-EOF &&
repo/file-tracked
repo/inside-tracked/file
EOF
cat >expect-untracked-unsorted <<-EOF &&
repo/file-untracked
repo/inside-untracked/file
repo/repo-inside/
repo-outside/
EOF
cat >expect-all-dir-unsorted <<-EOF &&
repo/
repo-outside/
EOF
cat expect-tracked-unsorted expect-untracked-unsorted >expect-all-unsorted &&
cat >.gitignore <<-EOF
.gitignore
actual-*
expect-*
EOF
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2205-add-worktree-config/test2/repo/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2205-add-worktree-config/test2/repo-outside/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2205-add-worktree-config/test2/repo/repo-inside/.git/
ok 6 - 2a: setup--set git-dir
expecting success of 2205.7 '2b: pre-add all':
(
cd test2 &&
git --git-dir=repo/.git ls-files -o --exclude-standard >actual-all-unsorted &&
sort actual-all-unsorted >actual-all &&
sort expect-all-unsorted >expect-all &&
test_cmp expect-all actual-all
)
ok 7 - 2b: pre-add all
expecting success of 2205.8 '2c: pre-add dir all':
(
cd test2 &&
git --git-dir=repo/.git ls-files -o --directory --exclude-standard >actual-all-dir-unsorted &&
sort actual-all-dir-unsorted >actual-all &&
sort expect-all-dir-unsorted >expect-all &&
test_cmp expect-all actual-all
)
ok 8 - 2c: pre-add dir all
expecting success of 2205.9 '2d: post-add tracked':
(
cd test2 &&
git --git-dir=repo/.git add repo/file-tracked &&
git --git-dir=repo/.git add repo/inside-tracked &&
git --git-dir=repo/.git ls-files >actual-tracked-unsorted &&
sort actual-tracked-unsorted >actual-tracked &&
sort expect-tracked-unsorted >expect-tracked &&
test_cmp expect-tracked actual-tracked
)
ok 9 - 2d: post-add tracked
expecting success of 2205.10 '2e: post-add untracked':
(
cd test2 &&
git --git-dir=repo/.git ls-files -o --exclude-standard >actual-untracked-unsorted &&
sort actual-untracked-unsorted >actual-untracked &&
sort expect-untracked-unsorted >expect-untracked &&
test_cmp expect-untracked actual-untracked
)
ok 10 - 2e: post-add untracked
expecting success of 2205.11 '3a: setup--add repo dir':
mkdir test3 &&
(
cd test3 &&
test_create_repo repo &&
mkdir -p repo/inside-tracked repo/inside-ignored &&
>repo/file-tracked &&
>repo/file-ignored &&
>repo/inside-tracked/file &&
>repo/inside-ignored/file &&
cat >.gitignore <<-EOF &&
.gitignore
actual-*
expect-*
*ignored
EOF
cat >expect-tracked-unsorted <<-EOF &&
repo/file-tracked
repo/inside-tracked/file
EOF
cat >expect-ignored-unsorted <<-EOF
repo/file-ignored
repo/inside-ignored/
.gitignore
actual-ignored-unsorted
expect-ignored-unsorted
expect-tracked-unsorted
EOF
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2205-add-worktree-config/test3/repo/.git/
ok 11 - 3a: setup--add repo dir
expecting success of 2205.12 '3b: ignored':
(
cd test3 &&
git --git-dir=repo/.git ls-files -io --directory --exclude-standard >actual-ignored-unsorted &&
sort actual-ignored-unsorted >actual-ignored &&
sort expect-ignored-unsorted >expect-ignored &&
test_cmp expect-ignored actual-ignored
)
ok 12 - 3b: ignored
expecting success of 2205.13 '3c: add repo':
(
cd test3 &&
git --git-dir=repo/.git add repo &&
git --git-dir=repo/.git ls-files >actual-tracked-unsorted &&
sort actual-tracked-unsorted >actual-tracked &&
sort expect-tracked-unsorted >expect-tracked &&
test_cmp expect-tracked actual-tracked
)
ok 13 - 3c: add repo
# passed all 13 test(s)
1..13
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2300-cd-to-toplevel.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2401-worktree-prune.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2401-worktree-prune/.git/
expecting success of 2401.1 'initialize':
git commit --allow-empty -m init
[main (root-commit) 50572bf] init
Author: A U Thor <author@example.com>
ok 1 - initialize
expecting success of 2401.2 'worktree prune on normal repo':
git worktree prune &&
test_must_fail git worktree prune abc
usage: git worktree prune [-n] [-v] [--expire <expire>]
-n, --dry-run do not remove, show only
-v, --verbose report pruned working trees
--expire <expiry-date>
expire working trees older than <time>
ok 2 - worktree prune on normal repo
expecting success of 2401.3 'prune files inside $GIT_DIR/worktrees':
mkdir .git/worktrees &&
: >.git/worktrees/abc &&
git worktree prune --verbose 2>actual &&
cat >expect <<EOF &&
Removing worktrees/abc: not a valid directory
EOF
test_cmp expect actual &&
! test -f .git/worktrees/abc &&
! test -d .git/worktrees
ok 3 - prune files inside $GIT_DIR/worktrees
expecting success of 2401.4 'prune directories without gitdir':
mkdir -p .git/worktrees/def/abc &&
: >.git/worktrees/def/def &&
cat >expect <<EOF &&
Removing worktrees/def: gitdir file does not exist
EOF
git worktree prune --verbose 2>actual &&
test_cmp expect actual &&
! test -d .git/worktrees/def &&
! test -d .git/worktrees
ok 4 - prune directories without gitdir
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 2401.5 'prune directories with unreadable gitdir':
mkdir -p .git/worktrees/def/abc &&
: >.git/worktrees/def/def &&
: >.git/worktrees/def/gitdir &&
chmod u-r .git/worktrees/def/gitdir &&
git worktree prune --verbose 2>actual &&
test_i18ngrep "Removing worktrees/def: unable to read gitdir file" actual &&
! test -d .git/worktrees/def &&
! test -d .git/worktrees
Removing worktrees/def: unable to read gitdir file (Permission denied)
ok 5 - prune directories with unreadable gitdir
expecting success of 2401.6 'prune directories with invalid gitdir':
mkdir -p .git/worktrees/def/abc &&
: >.git/worktrees/def/def &&
: >.git/worktrees/def/gitdir &&
git worktree prune --verbose 2>actual &&
test_i18ngrep "Removing worktrees/def: invalid gitdir file" actual &&
! test -d .git/worktrees/def &&
! test -d .git/worktrees
Removing worktrees/def: invalid gitdir file
ok 6 - prune directories with invalid gitdir
expecting success of 2401.7 'prune directories with gitdir pointing to nowhere':
mkdir -p .git/worktrees/def/abc &&
: >.git/worktrees/def/def &&
echo "$(pwd)"/nowhere >.git/worktrees/def/gitdir &&
git worktree prune --verbose 2>actual &&
test_i18ngrep "Removing worktrees/def: gitdir file points to non-existent location" actual &&
! test -d .git/worktrees/def &&
! test -d .git/worktrees
Removing worktrees/def: gitdir file points to non-existent location
ok 7 - prune directories with gitdir pointing to nowhere
expecting success of 2401.8 'not prune locked checkout':
test_when_finished rm -r .git/worktrees &&
mkdir -p .git/worktrees/ghi &&
: >.git/worktrees/ghi/locked &&
git worktree prune &&
test -d .git/worktrees/ghi
ok 8 - not prune locked checkout
expecting success of 2401.9 'not prune recent checkouts':
test_when_finished rm -r .git/worktrees &&
git worktree add jlm HEAD &&
test -d .git/worktrees/jlm &&
rm -rf jlm &&
git worktree prune --verbose --expire=2.days.ago &&
test -d .git/worktrees/jlm
Preparing worktree (detached HEAD 50572bf)
HEAD is now at 50572bf init
ok 9 - not prune recent checkouts
expecting success of 2401.10 'not prune proper checkouts':
test_when_finished rm -r .git/worktrees &&
git worktree add --detach "$PWD/nop" main &&
git worktree prune &&
test -d .git/worktrees/nop
Preparing worktree (detached HEAD 50572bf)
HEAD is now at 50572bf init
ok 10 - not prune proper checkouts
expecting success of 2401.11 'prune duplicate (linked/linked)':
test_when_finished rm -fr .git/worktrees w1 w2 &&
git worktree add --detach w1 &&
git worktree add --detach w2 &&
sed "s/w2/w1/" .git/worktrees/w2/gitdir >.git/worktrees/w2/gitdir.new &&
mv .git/worktrees/w2/gitdir.new .git/worktrees/w2/gitdir &&
git worktree prune --verbose 2>actual &&
test_i18ngrep "duplicate entry" actual &&
test -d .git/worktrees/w1 &&
! test -d .git/worktrees/w2
Preparing worktree (detached HEAD 50572bf)
HEAD is now at 50572bf init
Preparing worktree (detached HEAD 50572bf)
HEAD is now at 50572bf init
Removing worktrees/w2: duplicate entry
ok 11 - prune duplicate (linked/linked)
expecting success of 2401.12 'prune duplicate (main/linked)':
test_when_finished rm -fr repo wt &&
test_create_repo repo &&
test_commit -C repo x &&
git -C repo worktree add --detach ../wt &&
rm -fr wt &&
mv repo wt &&
git -C wt worktree prune --verbose 2>actual &&
test_i18ngrep "duplicate entry" actual &&
! test -d .git/worktrees/wt
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2401-worktree-prune/repo/.git/
[main (root-commit) cb85766] x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 x.t
Preparing worktree (detached HEAD cb85766)
HEAD is now at cb85766 x
Removing worktrees/wt: duplicate entry
ok 12 - prune duplicate (main/linked)
# passed all 12 test(s)
1..12
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2402-worktree-list.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2402-worktree-list/.git/
expecting success of 2402.1 'setup':
test_commit init
[main (root-commit) 2519212] init
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
ok 1 - setup
expecting success of 2402.2 'rev-parse --git-common-dir on main worktree':
git rev-parse --git-common-dir >actual &&
echo .git >expected &&
test_cmp expected actual &&
mkdir sub &&
git -C sub rev-parse --git-common-dir >actual2 &&
echo ../.git >expected2 &&
test_cmp expected2 actual2
ok 2 - rev-parse --git-common-dir on main worktree
expecting success of 2402.3 'rev-parse --git-path objects linked worktree':
echo "$(git rev-parse --show-toplevel)/.git/objects" >expect &&
test_when_finished "rm -rf linked-tree actual expect && git worktree prune" &&
git worktree add --detach linked-tree main &&
git -C linked-tree rev-parse --git-path objects >actual &&
test_cmp expect actual
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 3 - rev-parse --git-path objects linked worktree
expecting success of 2402.4 '"list" all worktrees from main':
echo "$(git rev-parse --show-toplevel) $(git rev-parse --short HEAD) [$(git symbolic-ref --short HEAD)]" >expect &&
test_when_finished "rm -rf here out actual expect && git worktree prune" &&
git worktree add --detach here main &&
echo "$(git -C here rev-parse --show-toplevel) $(git rev-parse --short HEAD) (detached HEAD)" >>expect &&
git worktree list >out &&
sed "s/ */ /g" <out >actual &&
test_cmp expect actual
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 4 - "list" all worktrees from main
expecting success of 2402.5 '"list" all worktrees from linked':
echo "$(git rev-parse --show-toplevel) $(git rev-parse --short HEAD) [$(git symbolic-ref --short HEAD)]" >expect &&
test_when_finished "rm -rf here out actual expect && git worktree prune" &&
git worktree add --detach here main &&
echo "$(git -C here rev-parse --show-toplevel) $(git rev-parse --short HEAD) (detached HEAD)" >>expect &&
git -C here worktree list >out &&
sed "s/ */ /g" <out >actual &&
test_cmp expect actual
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 5 - "list" all worktrees from linked
expecting success of 2402.6 '"list" all worktrees --porcelain':
echo "worktree $(git rev-parse --show-toplevel)" >expect &&
echo "HEAD $(git rev-parse HEAD)" >>expect &&
echo "branch $(git symbolic-ref HEAD)" >>expect &&
echo >>expect &&
test_when_finished "rm -rf here actual expect && git worktree prune" &&
git worktree add --detach here main &&
echo "worktree $(git -C here rev-parse --show-toplevel)" >>expect &&
echo "HEAD $(git rev-parse HEAD)" >>expect &&
echo "detached" >>expect &&
echo >>expect &&
git worktree list --porcelain >actual &&
test_cmp expect actual
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 6 - "list" all worktrees --porcelain
expecting success of 2402.7 '"list" all worktrees --porcelain -z':
test_when_finished "rm -rf here _actual actual expect &&
git worktree prune" &&
printf "worktree %sQHEAD %sQbranch %sQQ" \
"$(git rev-parse --show-toplevel)" \
$(git rev-parse HEAD --symbolic-full-name HEAD) >expect &&
git worktree add --detach here main &&
printf "worktree %sQHEAD %sQdetachedQQ" \
"$(git -C here rev-parse --show-toplevel)" \
"$(git rev-parse HEAD)" >>expect &&
git worktree list --porcelain -z >_actual &&
nul_to_q <_actual >actual &&
test_cmp expect actual
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 7 - "list" all worktrees --porcelain -z
expecting success of 2402.8 '"list" -z fails without --porcelain':
test_must_fail git worktree list -z
fatal: the option '-z' requires '--porcelain'
ok 8 - "list" -z fails without --porcelain
expecting success of 2402.9 '"list" all worktrees with locked annotation':
test_when_finished "rm -rf locked unlocked out && git worktree prune" &&
git worktree add --detach locked main &&
git worktree add --detach unlocked main &&
git worktree lock locked &&
test_when_finished "git worktree unlock locked" &&
git worktree list >out &&
grep "/locked *[0-9a-f].* locked$" out &&
! grep "/unlocked *[0-9a-f].* locked$" out
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
/<<PKGBUILDDIR>>/t/trash directory.t2402-worktree-list/locked 2519212 (detached HEAD) locked
ok 9 - "list" all worktrees with locked annotation
expecting success of 2402.10 '"list" all worktrees --porcelain with locked':
test_when_finished "rm -rf locked1 locked2 unlocked out actual expect && git worktree prune" &&
echo "locked" >expect &&
echo "locked with reason" >>expect &&
git worktree add --detach locked1 &&
git worktree add --detach locked2 &&
# unlocked worktree should not be annotated with "locked"
git worktree add --detach unlocked &&
git worktree lock locked1 &&
test_when_finished "git worktree unlock locked1" &&
git worktree lock locked2 --reason "with reason" &&
test_when_finished "git worktree unlock locked2" &&
git worktree list --porcelain >out &&
grep "^locked" out >actual &&
test_cmp expect actual
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 10 - "list" all worktrees --porcelain with locked
expecting success of 2402.11 '"list" all worktrees --porcelain with locked reason newline escaped':
test_when_finished "rm -rf locked_lf locked_crlf out actual expect && git worktree prune" &&
printf "locked \"locked\\\\r\\\\nreason\"\n" >expect &&
printf "locked \"locked\\\\nreason\"\n" >>expect &&
git worktree add --detach locked_lf &&
git worktree add --detach locked_crlf &&
git worktree lock locked_lf --reason "$(printf "locked\nreason")" &&
test_when_finished "git worktree unlock locked_lf" &&
git worktree lock locked_crlf --reason "$(printf "locked\r\nreason")" &&
test_when_finished "git worktree unlock locked_crlf" &&
git worktree list --porcelain >out &&
grep "^locked" out >actual &&
test_cmp expect actual
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 11 - "list" all worktrees --porcelain with locked reason newline escaped
expecting success of 2402.12 '"list" all worktrees with prunable annotation':
test_when_finished "rm -rf prunable unprunable out && git worktree prune" &&
git worktree add --detach prunable &&
git worktree add --detach unprunable &&
rm -rf prunable &&
git worktree list >out &&
grep "/prunable *[0-9a-f].* prunable$" out &&
! grep "/unprunable *[0-9a-f].* prunable$"
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
/<<PKGBUILDDIR>>/t/trash directory.t2402-worktree-list/prunable 2519212 (detached HEAD) prunable
ok 12 - "list" all worktrees with prunable annotation
expecting success of 2402.13 '"list" all worktrees --porcelain with prunable':
test_when_finished "rm -rf prunable out && git worktree prune" &&
git worktree add --detach prunable &&
rm -rf prunable &&
git worktree list --porcelain >out &&
sed -n "/^worktree .*\/prunable$/,/^$/p" <out >only_prunable &&
test_i18ngrep "^prunable gitdir file points to non-existent location$" only_prunable
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
prunable gitdir file points to non-existent location
ok 13 - "list" all worktrees --porcelain with prunable
expecting success of 2402.14 '"list" all worktrees with prunable consistent with "prune"':
test_when_finished "rm -rf prunable unprunable out && git worktree prune" &&
git worktree add --detach prunable &&
git worktree add --detach unprunable &&
rm -rf prunable &&
git worktree list >out &&
grep "/prunable *[0-9a-f].* prunable$" out &&
! grep "/unprunable *[0-9a-f].* unprunable$" out &&
git worktree prune --verbose 2>out &&
test_i18ngrep "^Removing worktrees/prunable" out &&
test_i18ngrep ! "^Removing worktrees/unprunable" out
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
/<<PKGBUILDDIR>>/t/trash directory.t2402-worktree-list/prunable 2519212 (detached HEAD) prunable
Removing worktrees/prunable: gitdir file points to non-existent location
ok 14 - "list" all worktrees with prunable consistent with "prune"
expecting success of 2402.15 '"list" --verbose and --porcelain mutually exclusive':
test_must_fail git worktree list --verbose --porcelain
fatal: options '--verbose' and '--porcelain' cannot be used together
ok 15 - "list" --verbose and --porcelain mutually exclusive
expecting success of 2402.16 '"list" all worktrees --verbose with locked':
test_when_finished "rm -rf locked1 locked2 out actual expect && git worktree prune" &&
git worktree add locked1 --detach &&
git worktree add locked2 --detach &&
git worktree lock locked1 &&
test_when_finished "git worktree unlock locked1" &&
git worktree lock locked2 --reason "with reason" &&
test_when_finished "git worktree unlock locked2" &&
echo "$(git -C locked2 rev-parse --show-toplevel) $(git rev-parse --short HEAD) (detached HEAD)" >expect &&
printf "\tlocked: with reason\n" >>expect &&
git worktree list --verbose >out &&
grep "/locked1 *[0-9a-f].* locked$" out &&
sed -n "s/ */ /g;/\/locked2 *[0-9a-f].*$/,/locked: .*$/p" <out >actual &&
test_cmp actual expect
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
/<<PKGBUILDDIR>>/t/trash directory.t2402-worktree-list/locked1 2519212 (detached HEAD) locked
ok 16 - "list" all worktrees --verbose with locked
expecting success of 2402.17 '"list" all worktrees --verbose with prunable':
test_when_finished "rm -rf prunable out actual expect && git worktree prune" &&
git worktree add prunable --detach &&
echo "$(git -C prunable rev-parse --show-toplevel) $(git rev-parse --short HEAD) (detached HEAD)" >expect &&
printf "\tprunable: gitdir file points to non-existent location\n" >>expect &&
rm -rf prunable &&
git worktree list --verbose >out &&
sed -n "s/ */ /g;/\/prunable *[0-9a-f].*$/,/prunable: .*$/p" <out >actual &&
test_cmp actual expect
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 17 - "list" all worktrees --verbose with prunable
expecting success of 2402.18 'bare repo setup':
git init --bare bare1 &&
echo "data" >file1 &&
git add file1 &&
git commit -m"File1: add data" &&
git push bare1 main &&
git reset --hard HEAD^
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2402-worktree-list/bare1/
[main 7c81006] File1: add data
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file1
To bare1
* [new branch] main -> main
HEAD is now at 2519212 init
ok 18 - bare repo setup
expecting success of 2402.19 '"list" all worktrees from bare main':
test_when_finished "rm -rf there out actual expect && git -C bare1 worktree prune" &&
git -C bare1 worktree add --detach ../there main &&
echo "$(pwd)/bare1 (bare)" >expect &&
echo "$(git -C there rev-parse --show-toplevel) $(git -C there rev-parse --short HEAD) (detached HEAD)" >>expect &&
git -C bare1 worktree list >out &&
sed "s/ */ /g" <out >actual &&
test_cmp expect actual
Preparing worktree (detached HEAD 7c81006)
HEAD is now at 7c81006 File1: add data
ok 19 - "list" all worktrees from bare main
expecting success of 2402.20 '"list" all worktrees --porcelain from bare main':
test_when_finished "rm -rf there actual expect && git -C bare1 worktree prune" &&
git -C bare1 worktree add --detach ../there main &&
echo "worktree $(pwd)/bare1" >expect &&
echo "bare" >>expect &&
echo >>expect &&
echo "worktree $(git -C there rev-parse --show-toplevel)" >>expect &&
echo "HEAD $(git -C there rev-parse HEAD)" >>expect &&
echo "detached" >>expect &&
echo >>expect &&
git -C bare1 worktree list --porcelain >actual &&
test_cmp expect actual
Preparing worktree (detached HEAD 7c81006)
HEAD is now at 7c81006 File1: add data
ok 20 - "list" all worktrees --porcelain from bare main
expecting success of 2402.21 '"list" all worktrees from linked with a bare main':
test_when_finished "rm -rf there out actual expect && git -C bare1 worktree prune" &&
git -C bare1 worktree add --detach ../there main &&
echo "$(pwd)/bare1 (bare)" >expect &&
echo "$(git -C there rev-parse --show-toplevel) $(git -C there rev-parse --short HEAD) (detached HEAD)" >>expect &&
git -C there worktree list >out &&
sed "s/ */ /g" <out >actual &&
test_cmp expect actual
Preparing worktree (detached HEAD 7c81006)
HEAD is now at 7c81006 File1: add data
ok 21 - "list" all worktrees from linked with a bare main
expecting success of 2402.22 'bare repo cleanup':
rm -rf bare1
ok 22 - bare repo cleanup
expecting success of 2402.23 'broken main worktree still at the top':
git init broken-main &&
(
cd broken-main &&
test_commit new &&
git worktree add linked &&
cat >expected <<-EOF &&
worktree $(pwd)
HEAD $ZERO_OID
EOF
cd linked &&
echo "worktree $(pwd)" >expected &&
(cd ../ && test-tool ref-store main create-symref HEAD .broken ) &&
git worktree list --porcelain >out &&
head -n 3 out >actual &&
test_cmp ../expected actual &&
git worktree list >out &&
head -n 1 out >actual.2 &&
grep -F "(error)" actual.2
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2402-worktree-list/broken-main/.git/
[main (root-commit) 3325ee1] new
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 new.t
Preparing worktree (new branch 'linked')
HEAD is now at 3325ee1 new
/<<PKGBUILDDIR>>/t/trash directory.t2402-worktree-list/broken-main 0000000 (error)
ok 23 - broken main worktree still at the top
expecting success of 2402.24 'linked worktrees are sorted':
mkdir sorted &&
git init sorted/main &&
(
cd sorted/main &&
test_tick &&
test_commit new &&
git worktree add ../first &&
git worktree add ../second &&
git worktree list --porcelain >out &&
grep ^worktree out >actual
) &&
cat >expected <<-EOF &&
worktree $(pwd)/sorted/main
worktree $(pwd)/sorted/first
worktree $(pwd)/sorted/second
EOF
test_cmp expected sorted/main/actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2402-worktree-list/sorted/main/.git/
[main (root-commit) d8ef111] new
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 new.t
Preparing worktree (new branch 'first')
HEAD is now at d8ef111 new
Preparing worktree (new branch 'second')
HEAD is now at d8ef111 new
ok 24 - linked worktrees are sorted
expecting success of 2402.25 'worktree path when called in .git directory':
git worktree list >list1 &&
git -C .git worktree list >list2 &&
test_cmp list1 list2
ok 25 - worktree path when called in .git directory
# passed all 25 test(s)
1..25
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2403-worktree-move.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2403-worktree-move/.git/
expecting success of 2403.1 'setup':
test_commit init &&
git worktree add source &&
git worktree list --porcelain >out &&
grep "^worktree" out >actual &&
cat <<-EOF >expected &&
worktree $(pwd)
worktree $(pwd)/source
EOF
test_cmp expected actual
[master (root-commit) 2519212] init
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
Preparing worktree (new branch 'source')
HEAD is now at 2519212 init
ok 1 - setup
expecting success of 2403.2 'lock main worktree':
test_must_fail git worktree lock .
fatal: The main working tree cannot be locked or unlocked
ok 2 - lock main worktree
expecting success of 2403.3 'lock linked worktree':
git worktree lock --reason hahaha source &&
echo hahaha >expected &&
test_cmp expected .git/worktrees/source/locked
ok 3 - lock linked worktree
expecting success of 2403.4 'lock linked worktree from another worktree':
rm .git/worktrees/source/locked &&
git worktree add elsewhere &&
git -C elsewhere worktree lock --reason hahaha ../source &&
echo hahaha >expected &&
test_cmp expected .git/worktrees/source/locked
Preparing worktree (new branch 'elsewhere')
HEAD is now at 2519212 init
ok 4 - lock linked worktree from another worktree
expecting success of 2403.5 'lock worktree twice':
test_must_fail git worktree lock source &&
echo hahaha >expected &&
test_cmp expected .git/worktrees/source/locked
fatal: 'source' is already locked, reason: hahaha
ok 5 - lock worktree twice
expecting success of 2403.6 'lock worktree twice (from the locked worktree)':
test_must_fail git -C source worktree lock . &&
echo hahaha >expected &&
test_cmp expected .git/worktrees/source/locked
fatal: '.' is already locked, reason: hahaha
ok 6 - lock worktree twice (from the locked worktree)
expecting success of 2403.7 'unlock main worktree':
test_must_fail git worktree unlock .
fatal: The main working tree cannot be locked or unlocked
ok 7 - unlock main worktree
expecting success of 2403.8 'unlock linked worktree':
git worktree unlock source &&
test_path_is_missing .git/worktrees/source/locked
ok 8 - unlock linked worktree
expecting success of 2403.9 'unlock worktree twice':
test_must_fail git worktree unlock source &&
test_path_is_missing .git/worktrees/source/locked
fatal: 'source' is not locked
ok 9 - unlock worktree twice
expecting success of 2403.10 'move non-worktree':
mkdir abc &&
test_must_fail git worktree move abc def
fatal: 'abc' is not a working tree
ok 10 - move non-worktree
expecting success of 2403.11 'move locked worktree':
git worktree lock source &&
test_when_finished "git worktree unlock source" &&
test_must_fail git worktree move source destination
fatal: cannot move a locked working tree;
use 'move -f -f' to override or unlock first
ok 11 - move locked worktree
expecting success of 2403.12 'move worktree':
git worktree move source destination &&
test_path_is_missing source &&
git worktree list --porcelain >out &&
grep "^worktree.*/destination$" out &&
! grep "^worktree.*/source$" out &&
git -C destination log --format=%s >actual2 &&
echo init >expected2 &&
test_cmp expected2 actual2
worktree /<<PKGBUILDDIR>>/t/trash directory.t2403-worktree-move/destination
ok 12 - move worktree
expecting success of 2403.13 'move main worktree':
test_must_fail git worktree move . def
fatal: '.' is a main working tree
ok 13 - move main worktree
expecting success of 2403.14 'move worktree to another dir':
mkdir some-dir &&
git worktree move destination some-dir &&
test_when_finished "git worktree move some-dir/destination destination" &&
test_path_is_missing destination &&
git worktree list --porcelain >out &&
grep "^worktree.*/some-dir/destination$" out &&
git -C some-dir/destination log --format=%s >actual2 &&
echo init >expected2 &&
test_cmp expected2 actual2
worktree /<<PKGBUILDDIR>>/t/trash directory.t2403-worktree-move/some-dir/destination
ok 14 - move worktree to another dir
expecting success of 2403.15 'move locked worktree (force)':
test_when_finished "
git worktree unlock flump || :
git worktree remove flump || :
git worktree unlock ploof || :
git worktree remove ploof || :
" &&
git worktree add --detach flump &&
git worktree lock flump &&
test_must_fail git worktree move flump ploof" &&
test_must_fail git worktree move --force flump ploof" &&
git worktree move --force --force flump ploof
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
fatal: cannot move a locked working tree;
use 'move -f -f' to override or unlock first
fatal: 'flump' is not a working tree
fatal: 'flump' is not a working tree
ok 15 - move locked worktree (force)
expecting success of 2403.16 'refuse to move worktree atop existing path':
>bobble &&
git worktree add --detach beeble &&
test_must_fail git worktree move beeble bobble
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
fatal: 'bobble' already exists
ok 16 - refuse to move worktree atop existing path
expecting success of 2403.17 'move atop existing but missing worktree':
git worktree add --detach gnoo &&
git worktree add --detach pneu &&
rm -fr pneu &&
test_must_fail git worktree move gnoo pneu &&
git worktree move --force gnoo pneu &&
git worktree add --detach nu &&
git worktree lock nu &&
rm -fr nu &&
test_must_fail git worktree move pneu nu &&
test_must_fail git worktree --force move pneu nu &&
git worktree move --force --force pneu nu
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
fatal: 'pneu' is a missing but already registered worktree;
use 'move -f' to override, or 'prune' or 'remove' to clear
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
fatal: 'nu' is a missing but locked worktree;
use 'move -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear
error: unknown option `force'
usage: git worktree add [-f] [--detach] [--checkout] [--lock [--reason <string>]]
[-b <new-branch>] <path> [<commit-ish>]
or: git worktree list [-v | --porcelain [-z]]
or: git worktree lock [--reason <string>] <worktree>
or: git worktree move <worktree> <new-path>
or: git worktree prune [-n] [-v] [--expire <expire>]
or: git worktree remove [-f] <worktree>
or: git worktree repair [<path>...]
or: git worktree unlock <worktree>
ok 17 - move atop existing but missing worktree
expecting success of 2403.18 'move a repo with uninitialized submodule':
git init withsub &&
(
cd withsub &&
test_commit initial &&
git -c protocol.file.allow=always \
submodule add "$PWD"/.git sub &&
git commit -m withsub &&
git worktree add second HEAD &&
git worktree move second third
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2403-worktree-move/withsub/.git/
[master (root-commit) 5e30013] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 initial.t
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2403-worktree-move/withsub/sub'...
done.
[master 3ab0e46] withsub
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 sub
Preparing worktree (detached HEAD 3ab0e46)
HEAD is now at 3ab0e46 withsub
ok 18 - move a repo with uninitialized submodule
expecting success of 2403.19 'not move a repo with initialized submodule':
(
cd withsub &&
git -c protocol.file.allow=always -C third submodule update &&
test_must_fail git worktree move third forth
)
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2403-worktree-move/withsub/third/sub'...
done.
Submodule path 'sub': checked out '5e3001300c8a533bee3e24efd70fbfae3dfa27e3'
fatal: working trees containing submodules cannot be moved or removed
ok 19 - not move a repo with initialized submodule
expecting success of 2403.20 'remove main worktree':
test_must_fail git worktree remove .
fatal: '.' is a main working tree
ok 20 - remove main worktree
expecting success of 2403.21 'remove locked worktree':
git worktree lock destination &&
test_when_finished "git worktree unlock destination" &&
test_must_fail git worktree remove destination
fatal: cannot remove a locked working tree;
use 'remove -f -f' to override or unlock first
ok 21 - remove locked worktree
expecting success of 2403.22 'remove worktree with dirty tracked file':
echo dirty >>destination/init.t &&
test_when_finished "git -C destination checkout init.t" &&
test_must_fail git worktree remove destination
fatal: 'destination' contains modified or untracked files, use --force to delete it
Updated 1 path from the index
ok 22 - remove worktree with dirty tracked file
expecting success of 2403.23 'remove worktree with untracked file':
: >destination/untracked &&
test_must_fail git worktree remove destination
fatal: 'destination' contains modified or untracked files, use --force to delete it
ok 23 - remove worktree with untracked file
expecting success of 2403.24 'force remove worktree with untracked file':
git worktree remove --force destination &&
test_path_is_missing destination
ok 24 - force remove worktree with untracked file
expecting success of 2403.25 'remove missing worktree':
git worktree add to-be-gone &&
test -d .git/worktrees/to-be-gone &&
mv to-be-gone gone &&
git worktree remove to-be-gone &&
test_path_is_missing .git/worktrees/to-be-gone
Preparing worktree (new branch 'to-be-gone')
HEAD is now at 2519212 init
ok 25 - remove missing worktree
expecting success of 2403.26 'NOT remove missing-but-locked worktree':
git worktree add gone-but-locked &&
git worktree lock gone-but-locked &&
test -d .git/worktrees/gone-but-locked &&
mv gone-but-locked really-gone-now &&
test_must_fail git worktree remove gone-but-locked &&
test_path_is_dir .git/worktrees/gone-but-locked
Preparing worktree (new branch 'gone-but-locked')
HEAD is now at 2519212 init
fatal: cannot remove a locked working tree;
use 'remove -f -f' to override or unlock first
ok 26 - NOT remove missing-but-locked worktree
expecting success of 2403.27 'proper error when worktree not found':
for i in noodle noodle/bork
do
test_must_fail git worktree lock $i 2>err &&
test_i18ngrep "not a working tree" err || return 1
done
fatal: 'noodle' is not a working tree
fatal: 'noodle/bork' is not a working tree
ok 27 - proper error when worktree not found
expecting success of 2403.28 'remove locked worktree (force)':
git worktree add --detach gumby &&
test_when_finished "git worktree remove gumby || :" &&
git worktree lock gumby &&
test_when_finished "git worktree unlock gumby || :" &&
test_must_fail git worktree remove gumby &&
test_must_fail git worktree remove --force gumby &&
git worktree remove --force --force gumby
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
fatal: cannot remove a locked working tree;
use 'remove -f -f' to override or unlock first
fatal: cannot remove a locked working tree;
use 'remove -f -f' to override or unlock first
fatal: 'gumby' is not a working tree
fatal: 'gumby' is not a working tree
ok 28 - remove locked worktree (force)
expecting success of 2403.29 'remove cleans up .git/worktrees when empty':
git init moog &&
(
cd moog &&
test_commit bim &&
git worktree add --detach goom &&
test_path_exists .git/worktrees &&
git worktree remove goom &&
test_path_is_missing .git/worktrees
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2403-worktree-move/moog/.git/
[master (root-commit) 89d547b] bim
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 bim.t
Preparing worktree (detached HEAD 89d547b)
HEAD is now at 89d547b bim
ok 29 - remove cleans up .git/worktrees when empty
expecting success of 2403.30 'remove a repo with uninitialized submodule':
test_config_global protocol.file.allow always &&
(
cd withsub &&
git worktree add to-remove HEAD &&
git worktree remove to-remove
)
Preparing worktree (detached HEAD 3ab0e46)
HEAD is now at 3ab0e46 withsub
ok 30 - remove a repo with uninitialized submodule
expecting success of 2403.31 'not remove a repo with initialized submodule':
test_config_global protocol.file.allow always &&
(
cd withsub &&
git worktree add to-remove HEAD &&
git -C to-remove submodule update &&
test_must_fail git worktree remove to-remove
)
Preparing worktree (detached HEAD 3ab0e46)
HEAD is now at 3ab0e46 withsub
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2403-worktree-move/withsub/to-remove/sub'...
done.
Submodule path 'sub': checked out '5e3001300c8a533bee3e24efd70fbfae3dfa27e3'
fatal: working trees containing submodules cannot be moved or removed
ok 31 - not remove a repo with initialized submodule
# passed all 31 test(s)
1..31
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2404-worktree-config.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <author@example.com>
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2400-worktree-add.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/.git/
expecting success of 2400.1 'setup':
test_commit init
[main (root-commit) 2519212] init
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
ok 1 - setup
expecting success of 2400.2 '"add" an existing worktree':
mkdir -p existing/subtree &&
test_must_fail git worktree add --detach existing main
Preparing worktree (detached HEAD 2519212)
fatal: 'existing' already exists
ok 2 - "add" an existing worktree
expecting success of 2400.3 '"add" an existing empty worktree':
mkdir existing_empty &&
git worktree add --detach existing_empty main
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 3 - "add" an existing empty worktree
expecting success of 2400.4 '"add" using shorthand - fails when no previous branch':
test_must_fail git worktree add existing_short -
fatal: invalid reference: @{-1}
ok 4 - "add" using shorthand - fails when no previous branch
expecting success of 2400.5 '"add" using - shorthand':
git checkout -b newbranch &&
echo hello >myworld &&
git add myworld &&
git commit -m myworld &&
git checkout main &&
git worktree add short-hand - &&
echo refs/heads/newbranch >expect &&
git -C short-hand rev-parse --symbolic-full-name HEAD >actual &&
test_cmp expect actual
Switched to a new branch 'newbranch'
[newbranch 5ae2ce4] myworld
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 myworld
Switched to branch 'main'
Preparing worktree (checking out '@{-1}')
HEAD is now at 5ae2ce4 myworld
ok 5 - "add" using - shorthand
expecting success of 2400.6 '"add" refuses to checkout locked branch':
test_must_fail git worktree add zere main &&
! test -d zere &&
! test -d .git/worktrees/zere
Preparing worktree (checking out 'main')
fatal: 'main' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add'
ok 6 - "add" refuses to checkout locked branch
expecting success of 2400.7 'checking out paths not complaining about linked checkouts':
(
cd existing_empty &&
echo dirty >>init.t &&
git checkout main -- init.t
)
ok 7 - checking out paths not complaining about linked checkouts
expecting success of 2400.8 '"add" worktree':
git rev-parse HEAD >expect &&
git worktree add --detach here main &&
(
cd here &&
test_cmp ../init.t init.t &&
test_must_fail git symbolic-ref HEAD &&
git rev-parse HEAD >actual &&
test_cmp ../expect actual &&
git fsck
)
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
fatal: ref HEAD is not a symbolic ref
ok 8 - "add" worktree
expecting success of 2400.9 '"add" worktree with lock':
git worktree add --detach --lock here-with-lock main &&
test_when_finished "git worktree unlock here-with-lock || :" &&
test -f .git/worktrees/here-with-lock/locked
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 9 - "add" worktree with lock
expecting success of 2400.10 '"add" worktree with lock and reason':
lock_reason="why not" &&
git worktree add --detach --lock --reason "$lock_reason" here-with-lock-reason main &&
test_when_finished "git worktree unlock here-with-lock-reason || :" &&
test -f .git/worktrees/here-with-lock-reason/locked &&
echo "$lock_reason" >expect &&
test_cmp expect .git/worktrees/here-with-lock-reason/locked
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 10 - "add" worktree with lock and reason
expecting success of 2400.11 '"add" worktree with reason but no lock':
test_must_fail git worktree add --detach --reason "why not" here-with-reason-only main &&
test_path_is_missing .git/worktrees/here-with-reason-only/locked
fatal: the option '--reason' requires '--lock'
ok 11 - "add" worktree with reason but no lock
expecting success of 2400.12 '"add" worktree from a subdir':
(
mkdir sub &&
cd sub &&
git worktree add --detach here main &&
cd here &&
test_cmp ../../init.t init.t
)
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 12 - "add" worktree from a subdir
expecting success of 2400.13 '"add" from a linked checkout':
(
cd here &&
git worktree add --detach nested-here main &&
cd nested-here &&
git fsck
)
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 13 - "add" from a linked checkout
expecting success of 2400.14 '"add" worktree creating new branch':
git worktree add -b newmain there main &&
(
cd there &&
test_cmp ../init.t init.t &&
git symbolic-ref HEAD >actual &&
echo refs/heads/newmain >expect &&
test_cmp expect actual &&
git fsck
)
Preparing worktree (new branch 'newmain')
HEAD is now at 2519212 init
ok 14 - "add" worktree creating new branch
expecting success of 2400.15 'die the same branch is already checked out':
(
cd here &&
test_must_fail git checkout newmain
)
fatal: 'newmain' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/there'
ok 15 - die the same branch is already checked out
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 2400.16 'die the same branch is already checked out (symlink)':
head=$(git -C there rev-parse --git-path HEAD) &&
ref=$(git -C there symbolic-ref HEAD) &&
rm "$head" &&
ln -s "$ref" "$head" &&
test_must_fail git -C here checkout newmain
fatal: 'newmain' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/there'
ok 16 - die the same branch is already checked out (symlink)
expecting success of 2400.17 'not die the same branch is already checked out':
(
cd here &&
git worktree add --force anothernewmain newmain
)
Preparing worktree (checking out 'newmain')
HEAD is now at 2519212 init
ok 17 - not die the same branch is already checked out
expecting success of 2400.18 'not die on re-checking out current branch':
(
cd there &&
git checkout newmain
)
Already on 'newmain'
ok 18 - not die on re-checking out current branch
expecting success of 2400.19 '"add" from a bare repo':
(
git clone --bare . bare &&
cd bare &&
git worktree add -b bare-main ../there2 main
)
Cloning into bare repository 'bare'...
done.
Preparing worktree (new branch 'bare-main')
HEAD is now at 2519212 init
ok 19 - "add" from a bare repo
expecting success of 2400.20 'checkout from a bare repo without "add"':
(
cd bare &&
test_must_fail git checkout main
)
fatal: this operation must be run in a work tree
ok 20 - checkout from a bare repo without "add"
expecting success of 2400.21 '"add" default branch of a bare repo':
(
git clone --bare . bare2 &&
cd bare2 &&
git worktree add ../there3 main &&
cd ../there3 &&
# Simple check that a Git command does not
# immediately fail with the current setup
git status
) &&
cat >expect <<-EOF &&
init.t
EOF
ls there3 >actual &&
test_cmp expect actual
Cloning into bare repository 'bare2'...
done.
Preparing worktree (checking out 'main')
HEAD is now at 2519212 init
On branch main
nothing to commit, working tree clean
ok 21 - "add" default branch of a bare repo
expecting success of 2400.22 '"add" to bare repo with worktree config':
(
git clone --bare . bare3 &&
cd bare3 &&
git config extensions.worktreeconfig true &&
# Add config values that are erroneous to have in
# a config.worktree file outside of the main
# working tree, to check that Git filters them out
# when copying config during "git worktree add".
git config --worktree core.bare true &&
git config --worktree core.worktree "$(pwd)" &&
# We want to check that bogus.key is copied
git config --worktree bogus.key value &&
git config --unset core.bare &&
git worktree add ../there4 main &&
cd ../there4 &&
# Simple check that a Git command does not
# immediately fail with the current setup
git status &&
git worktree add --detach ../there5 &&
cd ../there5 &&
git status
) &&
# the worktree has the arbitrary value copied.
test_cmp_config -C there4 value bogus.key &&
test_cmp_config -C there5 value bogus.key &&
# however, core.bare and core.worktree were removed.
test_must_fail git -C there4 config core.bare &&
test_must_fail git -C there4 config core.worktree &&
cat >expect <<-EOF &&
init.t
EOF
ls there4 >actual &&
test_cmp expect actual &&
ls there5 >actual &&
test_cmp expect actual
Cloning into bare repository 'bare3'...
done.
warning: core.bare and core.worktree do not make sense
warning: core.bare and core.worktree do not make sense
warning: core.bare and core.worktree do not make sense
Preparing worktree (checking out 'main')
HEAD is now at 2519212 init
On branch main
nothing to commit, working tree clean
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
Not currently on any branch.
nothing to commit, working tree clean
ok 22 - "add" to bare repo with worktree config
expecting success of 2400.23 'checkout with grafts':
test_when_finished rm .git/info/grafts &&
test_commit abc &&
SHA1=$(git rev-parse HEAD) &&
test_commit def &&
test_commit xyz &&
mkdir .git/info &&
echo "$(git rev-parse HEAD) $SHA1" >.git/info/grafts &&
cat >expected <<-\EOF &&
xyz
abc
EOF
git log --format=%s -2 >actual &&
test_cmp expected actual &&
git worktree add --detach grafted main &&
git --git-dir=grafted/.git log --format=%s -2 >actual &&
test_cmp expected actual
[main 6d278e0] abc
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 abc.t
[main 3c13a14] def
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 def.t
[main a51b5be] xyz
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 xyz.t
hint: Support for <GIT_DIR>/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 <GIT_DIR>/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"
Preparing worktree (detached HEAD a51b5be)
hint: Support for <GIT_DIR>/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 <GIT_DIR>/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"
HEAD is now at a51b5be xyz
hint: Support for <GIT_DIR>/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"
ok 23 - checkout with grafts
expecting success of 2400.24 '"add" from relative HEAD':
test_commit a &&
test_commit b &&
test_commit c &&
git rev-parse HEAD~1 >expected &&
git worktree add relhead HEAD~1 &&
git -C relhead rev-parse HEAD >actual &&
test_cmp expected actual
[main e9a6308] a
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a.t
[main 15d3bfc] b
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b.t
[main 179a9e0] c
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 c.t
Preparing worktree (detached HEAD 15d3bfc)
HEAD is now at 15d3bfc b
ok 24 - "add" from relative HEAD
expecting success of 2400.25 '"add -b" with <branch> omitted':
git worktree add -b burble flornk &&
test_cmp_rev HEAD burble
Preparing worktree (new branch 'burble')
HEAD is now at 179a9e0 c
ok 25 - "add -b" with <branch> omitted
expecting success of 2400.26 '"add --detach" with <branch> omitted':
git worktree add --detach fishhook &&
git rev-parse HEAD >expected &&
git -C fishhook rev-parse HEAD >actual &&
test_cmp expected actual &&
test_must_fail git -C fishhook symbolic-ref HEAD
Preparing worktree (detached HEAD 179a9e0)
HEAD is now at 179a9e0 c
fatal: ref HEAD is not a symbolic ref
ok 26 - "add --detach" with <branch> omitted
expecting success of 2400.27 '"add" with <branch> omitted':
git worktree add wiffle/bat &&
test_cmp_rev HEAD bat
Preparing worktree (new branch 'bat')
HEAD is now at 179a9e0 c
ok 27 - "add" with <branch> omitted
expecting success of 2400.28 '"add" checks out existing branch of dwimd name':
git branch dwim HEAD~1 &&
git worktree add dwim &&
test_cmp_rev HEAD~1 dwim &&
(
cd dwim &&
test_cmp_rev HEAD dwim
)
Preparing worktree (checking out 'dwim')
HEAD is now at 15d3bfc b
ok 28 - "add" checks out existing branch of dwimd name
expecting success of 2400.29 '"add <path>" dwim fails with checked out branch':
git checkout -b test-branch &&
test_must_fail git worktree add test-branch &&
test_path_is_missing test-branch
Switched to a new branch 'test-branch'
Preparing worktree (checking out 'test-branch')
fatal: 'test-branch' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add'
ok 29 - "add <path>" dwim fails with checked out branch
expecting success of 2400.30 '"add --force" with existing dwimd name doesnt die':
git checkout test-branch &&
git worktree add --force test-branch
Already on 'test-branch'
Preparing worktree (checking out 'test-branch')
HEAD is now at 179a9e0 c
ok 30 - "add --force" with existing dwimd name doesnt die
expecting success of 2400.31 '"add" no auto-vivify with --detach and <branch> omitted':
git worktree add --detach mish/mash &&
test_must_fail git rev-parse mash -- &&
test_must_fail git -C mish/mash symbolic-ref HEAD
Preparing worktree (detached HEAD 179a9e0)
HEAD is now at 179a9e0 c
fatal: bad revision 'mash'
fatal: ref HEAD is not a symbolic ref
ok 31 - "add" no auto-vivify with --detach and <branch> omitted
expecting success of 2400.32 '"add" -b/-B mutually exclusive':
test_must_fail git worktree add -b poodle -B poodle bamboo main
fatal: options '-b', '-B', and '--detach' cannot be used together
ok 32 - "add" -b/-B mutually exclusive
expecting success of 2400.33 '"add" -b/--detach mutually exclusive':
test_must_fail git worktree add -b poodle --detach bamboo main
fatal: options '-b', '-B', and '--detach' cannot be used together
ok 33 - "add" -b/--detach mutually exclusive
expecting success of 2400.34 '"add" -B/--detach mutually exclusive':
test_must_fail git worktree add -B poodle --detach bamboo main
fatal: options '-b', '-B', and '--detach' cannot be used together
ok 34 - "add" -B/--detach mutually exclusive
expecting success of 2400.35 '"add -B" fails if the branch is checked out':
git rev-parse newmain >before &&
test_must_fail git worktree add -B newmain bamboo main &&
git rev-parse newmain >after &&
test_cmp before after
fatal: 'newmain' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/there'
ok 35 - "add -B" fails if the branch is checked out
expecting success of 2400.36 'add -B':
git worktree add -B poodle bamboo2 main^ &&
git -C bamboo2 symbolic-ref HEAD >actual &&
echo refs/heads/poodle >expected &&
test_cmp expected actual &&
test_cmp_rev main^ poodle
Preparing worktree (new branch 'poodle')
HEAD is now at 15d3bfc b
ok 36 - add -B
expecting success of 2400.37 'add --quiet':
git worktree add --quiet another-worktree main 2>actual &&
test_must_be_empty actual
ok 37 - add --quiet
expecting success of 2400.38 'local clone from linked checkout':
git clone --local here here-clone &&
( cd here-clone && git fsck )
Cloning into 'here-clone'...
done.
ok 38 - local clone from linked checkout
expecting success of 2400.39 'local clone --shared from linked checkout':
git -C bare worktree add --detach ../baretree &&
git clone --local --shared baretree bare-clone &&
grep /bare/ bare-clone/.git/objects/info/alternates
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
Cloning into 'bare-clone'...
done.
/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/bare/objects
ok 39 - local clone --shared from linked checkout
expecting success of 2400.40 '"add" worktree with --no-checkout':
git worktree add --no-checkout -b swamp swamp &&
! test -e swamp/init.t &&
git -C swamp reset --hard &&
test_cmp init.t swamp/init.t
Preparing worktree (new branch 'swamp')
HEAD is now at 179a9e0 c
ok 40 - "add" worktree with --no-checkout
expecting success of 2400.41 '"add" worktree with --checkout':
git worktree add --checkout -b swmap2 swamp2 &&
test_cmp init.t swamp2/init.t
Preparing worktree (new branch 'swmap2')
HEAD is now at 179a9e0 c
ok 41 - "add" worktree with --checkout
expecting success of 2400.42 'put a worktree under rebase':
git worktree add under-rebase &&
(
cd under-rebase &&
set_fake_editor &&
FAKE_LINES="edit 1" git rebase -i HEAD^ &&
git worktree list | grep "under-rebase.*detached HEAD"
)
Preparing worktree (new branch 'under-rebase')
HEAD is now at 179a9e0 c
rebase -i script before editing:
pick 179a9e0 c
rebase -i script after editing:
edit 179a9e0 c
Rebasing (1/1)
Stopped at 179a9e0... c
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/under-rebase 179a9e0 (detached HEAD)
ok 42 - put a worktree under rebase
expecting success of 2400.43 'add a worktree, checking out a rebased branch':
test_must_fail git worktree add new-rebase under-rebase &&
! test -d new-rebase
Preparing worktree (checking out 'under-rebase')
fatal: 'under-rebase' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/under-rebase'
ok 43 - add a worktree, checking out a rebased branch
expecting success of 2400.44 'checking out a rebased branch from another worktree':
git worktree add new-place &&
test_must_fail git -C new-place checkout under-rebase
Preparing worktree (new branch 'new-place')
HEAD is now at 179a9e0 c
fatal: 'under-rebase' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/under-rebase'
ok 44 - checking out a rebased branch from another worktree
expecting success of 2400.45 'not allow to delete a branch under rebase':
(
cd under-rebase &&
test_must_fail git branch -D under-rebase
)
error: Cannot delete branch 'under-rebase' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/under-rebase'
ok 45 - not allow to delete a branch under rebase
expecting success of 2400.46 'rename a branch under rebase not allowed':
test_must_fail git branch -M under-rebase rebase-with-new-name
fatal: Branch refs/heads/under-rebase is being rebased at /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/under-rebase
ok 46 - rename a branch under rebase not allowed
expecting success of 2400.47 'check out from current worktree branch ok':
(
cd under-rebase &&
git checkout under-rebase &&
git checkout - &&
git rebase --abort
)
Switched to branch 'under-rebase'
Note: switching to '179a9e09a27c48c73ff2a192ec62ebcd60fedd6a'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 179a9e0 c
ok 47 - check out from current worktree branch ok
expecting success of 2400.48 'checkout a branch under bisect':
git worktree add under-bisect &&
(
cd under-bisect &&
git bisect start &&
git bisect bad &&
git bisect good HEAD~2 &&
git worktree list | grep "under-bisect.*detached HEAD" &&
test_must_fail git worktree add new-bisect under-bisect &&
! test -d new-bisect
)
Preparing worktree (new branch 'under-bisect')
HEAD is now at 179a9e0 c
status: waiting for both good and bad commits
status: waiting for good commit(s), bad commit known
Bisecting: 0 revisions left to test after this (roughly 0 steps)
[15d3bfcc767862b6abd36db671feb8356eb7d7d7] b
/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/under-bisect 15d3bfc (detached HEAD)
Preparing worktree (checking out 'under-bisect')
fatal: 'under-bisect' is already checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/under-bisect'
ok 48 - checkout a branch under bisect
expecting success of 2400.49 'rename a branch under bisect not allowed':
test_must_fail git branch -M under-bisect bisect-with-new-name
fatal: Branch refs/heads/under-bisect is being bisected at /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/under-bisect
ok 49 - rename a branch under bisect not allowed
expecting success of 2400.50 '--track sets up tracking':
test_when_finished rm -rf track &&
git worktree add --track -b track track main &&
test_branch_upstream track . main
Preparing worktree (new branch 'track')
branch 'track' set up to track 'main'.
HEAD is now at 179a9e0 c
ok 50 - --track sets up tracking
expecting success of 2400.51 '--no-track avoids setting up tracking':
test_when_finished rm -rf repo_upstream repo_local foo &&
setup_remote_repo repo_upstream repo_local &&
(
cd repo_local &&
git worktree add --no-track -b foo ../foo repo_upstream/foo
) &&
(
cd foo &&
test_must_fail git config "branch.foo.remote" &&
test_must_fail git config "branch.foo.merge" &&
test_cmp_rev refs/remotes/repo_upstream/foo refs/heads/foo
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/repo_upstream/.git/
[main (root-commit) 135732a] repo_upstream_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 repo_upstream_main.t
Switched to a new branch 'foo'
[foo 7502c9e] upstream_foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 upstream_foo.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/repo_local/.git/
[main (root-commit) d4b0dca] repo_local_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 repo_local_main.t
From ../repo_upstream
* [new branch] foo -> repo_upstream/foo
* [new branch] main -> repo_upstream/main
* [new tag] repo_upstream_main -> repo_upstream_main
* [new tag] upstream_foo -> upstream_foo
Preparing worktree (new branch 'foo')
HEAD is now at 7502c9e upstream_foo
ok 51 - --no-track avoids setting up tracking
expecting success of 2400.52 '"add" <path> <non-existent-branch> fails':
test_must_fail git worktree add foo non-existent
fatal: invalid reference: non-existent
ok 52 - "add" <path> <non-existent-branch> fails
expecting success of 2400.53 '"add" <path> <branch> dwims':
test_when_finished rm -rf repo_upstream repo_dwim foo &&
setup_remote_repo repo_upstream repo_dwim &&
git init repo_dwim &&
(
cd repo_dwim &&
git worktree add ../foo foo
) &&
(
cd foo &&
test_branch_upstream foo repo_upstream foo &&
test_cmp_rev refs/remotes/repo_upstream/foo refs/heads/foo
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/repo_upstream/.git/
[main (root-commit) 135732a] repo_upstream_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 repo_upstream_main.t
Switched to a new branch 'foo'
[foo 7502c9e] upstream_foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 upstream_foo.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/repo_dwim/.git/
[main (root-commit) 9838263] repo_dwim_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 repo_dwim_main.t
From ../repo_upstream
* [new branch] foo -> repo_upstream/foo
* [new branch] main -> repo_upstream/main
* [new tag] repo_upstream_main -> repo_upstream_main
* [new tag] upstream_foo -> upstream_foo
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/repo_dwim/.git/
Preparing worktree (new branch 'foo')
branch 'foo' set up to track 'repo_upstream/foo'.
HEAD is now at 7502c9e upstream_foo
ok 53 - "add" <path> <branch> dwims
expecting success of 2400.54 '"add" <path> <branch> dwims with checkout.defaultRemote':
test_when_finished rm -rf repo_upstream repo_dwim foo &&
setup_remote_repo repo_upstream repo_dwim &&
git init repo_dwim &&
(
cd repo_dwim &&
git remote add repo_upstream2 ../repo_upstream &&
git fetch repo_upstream2 &&
test_must_fail git worktree add ../foo foo &&
git -c checkout.defaultRemote=repo_upstream worktree add ../foo foo &&
git status -uno --porcelain >status.actual &&
test_must_be_empty status.actual
) &&
(
cd foo &&
test_branch_upstream foo repo_upstream foo &&
test_cmp_rev refs/remotes/repo_upstream/foo refs/heads/foo
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/repo_upstream/.git/
[main (root-commit) 135732a] repo_upstream_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 repo_upstream_main.t
Switched to a new branch 'foo'
[foo 7502c9e] upstream_foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 upstream_foo.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/repo_dwim/.git/
[main (root-commit) 9838263] repo_dwim_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 repo_dwim_main.t
From ../repo_upstream
* [new branch] foo -> repo_upstream/foo
* [new branch] main -> repo_upstream/main
* [new tag] repo_upstream_main -> repo_upstream_main
* [new tag] upstream_foo -> upstream_foo
Reinitialized existing Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/repo_dwim/.git/
From ../repo_upstream
* [new branch] foo -> repo_upstream2/foo
* [new branch] main -> repo_upstream2/main
fatal: invalid reference: foo
Preparing worktree (new branch 'foo')
branch 'foo' set up to track 'repo_upstream/foo'.
HEAD is now at 7502c9e upstream_foo
ok 54 - "add" <path> <branch> dwims with checkout.defaultRemote
expecting success of 2400.55 'git worktree add does not match remote':
test_when_finished rm -rf repo_a repo_b foo &&
setup_remote_repo repo_a repo_b &&
(
cd repo_b &&
git worktree add ../foo
) &&
(
cd foo &&
test_must_fail git config "branch.foo.remote" &&
test_must_fail git config "branch.foo.merge" &&
test_cmp_rev ! refs/remotes/repo_a/foo refs/heads/foo
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/repo_a/.git/
[main (root-commit) dcba593] repo_a_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 repo_a_main.t
Switched to a new branch 'foo'
[foo 9855f4b] upstream_foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 upstream_foo.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/repo_b/.git/
[main (root-commit) 49eaa9c] repo_b_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 repo_b_main.t
From ../repo_a
* [new branch] foo -> repo_a/foo
* [new branch] main -> repo_a/main
* [new tag] repo_a_main -> repo_a_main
* [new tag] upstream_foo -> upstream_foo
Preparing worktree (new branch 'foo')
HEAD is now at 49eaa9c repo_b_main
ok 55 - git worktree add does not match remote
expecting success of 2400.56 'git worktree add --guess-remote sets up tracking':
test_when_finished rm -rf repo_a repo_b foo &&
setup_remote_repo repo_a repo_b &&
(
cd repo_b &&
git worktree add --guess-remote ../foo
) &&
(
cd foo &&
test_branch_upstream foo repo_a foo &&
test_cmp_rev refs/remotes/repo_a/foo refs/heads/foo
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/repo_a/.git/
[main (root-commit) dcba593] repo_a_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 repo_a_main.t
Switched to a new branch 'foo'
[foo 9855f4b] upstream_foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 upstream_foo.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/repo_b/.git/
[main (root-commit) 49eaa9c] repo_b_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 repo_b_main.t
From ../repo_a
* [new branch] foo -> repo_a/foo
* [new branch] main -> repo_a/main
* [new tag] repo_a_main -> repo_a_main
* [new tag] upstream_foo -> upstream_foo
Preparing worktree (new branch 'foo')
branch 'foo' set up to track 'repo_a/foo'.
HEAD is now at 9855f4b upstream_foo
ok 56 - git worktree add --guess-remote sets up tracking
expecting success of 2400.57 'git worktree add with worktree.guessRemote sets up tracking':
test_when_finished rm -rf repo_a repo_b foo &&
setup_remote_repo repo_a repo_b &&
(
cd repo_b &&
git config worktree.guessRemote true &&
git worktree add ../foo
) &&
(
cd foo &&
test_branch_upstream foo repo_a foo &&
test_cmp_rev refs/remotes/repo_a/foo refs/heads/foo
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/repo_a/.git/
[main (root-commit) dcba593] repo_a_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 repo_a_main.t
Switched to a new branch 'foo'
[foo 9855f4b] upstream_foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 upstream_foo.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/repo_b/.git/
[main (root-commit) 49eaa9c] repo_b_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 repo_b_main.t
From ../repo_a
* [new branch] foo -> repo_a/foo
* [new branch] main -> repo_a/main
* [new tag] repo_a_main -> repo_a_main
* [new tag] upstream_foo -> upstream_foo
Preparing worktree (new branch 'foo')
branch 'foo' set up to track 'repo_a/foo'.
HEAD is now at 9855f4b upstream_foo
ok 57 - git worktree add with worktree.guessRemote sets up tracking
expecting success of 2400.58 'git worktree --no-guess-remote option overrides config':
test_when_finished rm -rf repo_a repo_b foo &&
setup_remote_repo repo_a repo_b &&
(
cd repo_b &&
git config worktree.guessRemote true &&
git worktree add --no-guess-remote ../foo
) &&
(
cd foo &&
test_must_fail git config "branch.foo.remote" &&
test_must_fail git config "branch.foo.merge" &&
test_cmp_rev ! refs/remotes/repo_a/foo refs/heads/foo
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/repo_a/.git/
[main (root-commit) dcba593] repo_a_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 repo_a_main.t
Switched to a new branch 'foo'
[foo 9855f4b] upstream_foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 upstream_foo.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/repo_b/.git/
[main (root-commit) 49eaa9c] repo_b_main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 repo_b_main.t
From ../repo_a
* [new branch] foo -> repo_a/foo
* [new branch] main -> repo_a/main
* [new tag] repo_a_main -> repo_a_main
* [new tag] upstream_foo -> upstream_foo
Preparing worktree (new branch 'foo')
HEAD is now at 49eaa9c repo_b_main
ok 58 - git worktree --no-guess-remote option overrides config
expecting success of 2400.59 '"add" invokes post-checkout hook (branch)':
post_checkout_hook &&
{
echo $ZERO_OID $(git rev-parse HEAD) 1 &&
echo $(pwd)/.git/worktrees/gumby &&
echo $(pwd)/gumby
} >hook.expect &&
git worktree add gumby &&
test_cmp hook.expect gumby/hook.actual
Preparing worktree (new branch 'gumby')
HEAD is now at 179a9e0 c
ok 59 - "add" invokes post-checkout hook (branch)
expecting success of 2400.60 '"add" invokes post-checkout hook (detached)':
post_checkout_hook &&
{
echo $ZERO_OID $(git rev-parse HEAD) 1 &&
echo $(pwd)/.git/worktrees/grumpy &&
echo $(pwd)/grumpy
} >hook.expect &&
git worktree add --detach grumpy &&
test_cmp hook.expect grumpy/hook.actual
Preparing worktree (detached HEAD 179a9e0)
HEAD is now at 179a9e0 c
ok 60 - "add" invokes post-checkout hook (detached)
expecting success of 2400.61 '"add --no-checkout" suppresses post-checkout hook':
post_checkout_hook &&
rm -f hook.actual &&
git worktree add --no-checkout gloopy &&
test_path_is_missing gloopy/hook.actual
Preparing worktree (new branch 'gloopy')
ok 61 - "add --no-checkout" suppresses post-checkout hook
expecting success of 2400.62 '"add" in other worktree invokes post-checkout hook':
post_checkout_hook &&
{
echo $ZERO_OID $(git rev-parse HEAD) 1 &&
echo $(pwd)/.git/worktrees/guppy &&
echo $(pwd)/guppy
} >hook.expect &&
git -C gloopy worktree add --detach ../guppy &&
test_cmp hook.expect guppy/hook.actual
Preparing worktree (detached HEAD 179a9e0)
HEAD is now at 179a9e0 c
ok 62 - "add" in other worktree invokes post-checkout hook
expecting success of 2400.63 '"add" in bare repo invokes post-checkout hook':
rm -rf bare &&
git clone --bare . bare &&
{
echo $ZERO_OID $(git --git-dir=bare rev-parse HEAD) 1 &&
echo $(pwd)/bare/worktrees/goozy &&
echo $(pwd)/goozy
} >hook.expect &&
post_checkout_hook bare &&
git -C bare worktree add --detach ../goozy &&
test_cmp hook.expect goozy/hook.actual
Cloning into bare repository 'bare'...
done.
Preparing worktree (detached HEAD 179a9e0)
HEAD is now at 179a9e0 c
ok 63 - "add" in bare repo invokes post-checkout hook
expecting success of 2400.64 '"add" an existing but missing worktree':
git worktree add --detach pneu &&
test_must_fail git worktree add --detach pneu &&
rm -fr pneu &&
test_must_fail git worktree add --detach pneu &&
git worktree add --force --detach pneu
Preparing worktree (detached HEAD 179a9e0)
HEAD is now at 179a9e0 c
Preparing worktree (detached HEAD 179a9e0)
fatal: 'pneu' already exists
Preparing worktree (detached HEAD 179a9e0)
fatal: 'pneu' is a missing but already registered worktree;
use 'add -f' to override, or 'prune' or 'remove' to clear
Preparing worktree (detached HEAD 179a9e0)
HEAD is now at 179a9e0 c
ok 64 - "add" an existing but missing worktree
expecting success of 2400.65 '"add" an existing locked but missing worktree':
git worktree add --detach gnoo &&
git worktree lock gnoo &&
test_when_finished "git worktree unlock gnoo || :" &&
rm -fr gnoo &&
test_must_fail git worktree add --detach gnoo &&
test_must_fail git worktree add --force --detach gnoo &&
git worktree add --force --force --detach gnoo
Preparing worktree (detached HEAD 179a9e0)
HEAD is now at 179a9e0 c
Preparing worktree (detached HEAD 179a9e0)
fatal: 'gnoo' is a missing but locked worktree;
use 'add -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear
Preparing worktree (detached HEAD 179a9e0)
fatal: 'gnoo' is a missing but locked worktree;
use 'add -f -f' to override, or 'unlock' and 'prune' or 'remove' to clear
Preparing worktree (detached HEAD 179a9e0)
HEAD is now at 179a9e0 c
fatal: 'gnoo' is not locked
ok 65 - "add" an existing locked but missing worktree
expecting success of 2400.66 '"add" not tripped up by magic worktree matching"':
# if worktree "sub1/bar" exists, "git worktree add bar" in distinct
# directory `sub2` should not mistakenly complain that `bar` is an
# already-registered worktree
mkdir sub1 sub2 &&
git -C sub1 --git-dir=../.git worktree add --detach bozo &&
git -C sub2 --git-dir=../.git worktree add --detach bozo
Preparing worktree (detached HEAD 179a9e0)
HEAD is now at 179a9e0 c
Preparing worktree (detached HEAD 179a9e0)
HEAD is now at 179a9e0 c
ok 66 - "add" not tripped up by magic worktree matching"
checking prerequisite: FUNNYNAMES
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-FUNNYNAMES" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-FUNNYNAMES" &&
test_have_prereq !MINGW &&
touch -- \
"FUNNYNAMES tab embedded" \
"FUNNYNAMES \"quote embedded\"" \
"FUNNYNAMES newline
embedded" 2>/dev/null &&
rm -- \
"FUNNYNAMES tab embedded" \
"FUNNYNAMES \"quote embedded\"" \
"FUNNYNAMES newline
embedded" 2>/dev/null
)
prerequisite FUNNYNAMES ok
expecting success of 2400.67 'sanitize generated worktree name':
git worktree add --detach ". weird*..?.lock.lock" &&
test -d .git/worktrees/---weird-.-
Preparing worktree (detached HEAD 179a9e0)
HEAD is now at 179a9e0 c
ok 67 - sanitize generated worktree name
expecting success of 2400.68 '"add" should not fail because of another bad worktree':
git init add-fail &&
(
cd add-fail &&
test_commit first &&
mkdir sub &&
git worktree add sub/to-be-deleted &&
rm -rf sub &&
git worktree add second
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/add-fail/.git/
[main (root-commit) 264aca7] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first.t
Preparing worktree (new branch 'to-be-deleted')
HEAD is now at 264aca7 first
Preparing worktree (new branch 'second')
HEAD is now at 264aca7 first
ok 68 - "add" should not fail because of another bad worktree
expecting success of 2400.69 '"add" with uninitialized submodule, with submodule.recurse unset':
test_config_global protocol.file.allow always &&
test_create_repo submodule &&
test_commit -C submodule first &&
test_create_repo project &&
git -C project submodule add ../submodule &&
git -C project add submodule &&
test_tick &&
git -C project commit -m add_sub &&
git clone project project-clone &&
git -C project-clone worktree add ../project-2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/submodule/.git/
[main (root-commit) 264aca7] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/project/.git/
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/project/submodule'...
done.
[main (root-commit) 57eb801] add_sub
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 submodule
Cloning into 'project-clone'...
done.
Preparing worktree (new branch 'project-2')
HEAD is now at 57eb801 add_sub
ok 69 - "add" with uninitialized submodule, with submodule.recurse unset
expecting success of 2400.70 '"add" with uninitialized submodule, with submodule.recurse set':
git -C project-clone -c submodule.recurse worktree add ../project-3
Preparing worktree (new branch 'project-3')
HEAD is now at 57eb801 add_sub
ok 70 - "add" with uninitialized submodule, with submodule.recurse set
expecting success of 2400.71 '"add" with initialized submodule, with submodule.recurse unset':
test_config_global protocol.file.allow always &&
git -C project-clone submodule update --init &&
git -C project-clone worktree add ../project-4
Submodule 'submodule' (/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/submodule) registered for path 'submodule'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2400-worktree-add/project-clone/submodule'...
done.
Submodule path 'submodule': checked out '264aca7c7b40ec0269cc15ea29c2bdbebfea2e3a'
Preparing worktree (new branch 'project-4')
HEAD is now at 57eb801 add_sub
ok 71 - "add" with initialized submodule, with submodule.recurse unset
expecting success of 2400.72 '"add" with initialized submodule, with submodule.recurse set':
git -C project-clone -c submodule.recurse worktree add ../project-5
Preparing worktree (new branch 'project-5')
HEAD is now at 57eb801 add_sub
ok 72 - "add" with initialized submodule, with submodule.recurse set
# passed all 72 test(s)
1..72
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2405-worktree-submodule.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2405-worktree-submodule/origin/sub/.git/
[main (root-commit) 69af168] file1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file1.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2405-worktree-submodule/origin/main/.git/
[main (root-commit) 1e96f59] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first.t
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2405-worktree-submodule/origin/main/sub'...
done.
[main 322c452] add sub
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 sub
[main 7829796] file1 updated
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file1
From /<<PKGBUILDDIR>>/t/trash directory.t2405-worktree-submodule/origin/sub
69af168..7829796 main -> origin/main
* [new tag] file1updated -> file1updated
Updating 69af168..7829796
Fast-forward
file1 | 1 +
1 file changed, 1 insertion(+)
create mode 100644 file1
[main d717f19] sub updated
Author: A U Thor <author@example.com>
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' (/<<PKGBUILDDIR>>/t/trash directory.t2405-worktree-submodule/origin/sub) registered for path 'sub'
Cloning into '/<<PKGBUILDDIR>>/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 main"^!" >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 '/<<PKGBUILDDIR>>/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 main"^!" >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 main"^!" >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 '/<<PKGBUILDDIR>>/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/<name>/config, not in $GIT_COMMON_DIR/modules/<name>/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/<name>/config, not in $GIT_COMMON_DIR/modules/<name>/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 <author@example.com>
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2013-checkout-submodule.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule/.git/
[master (root-commit) 50e526b] first
Author: A U Thor <author@example.com>
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 <url> 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 <author@example.com>
1 file changed, 1 insertion(+)
create mode 160000 submodule
[master d662100] second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 second.t
[master 14e674f] updated.superproject
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup
expecting success of 2013.2 '"reset <submodule>" 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
Unstaged changes after reset:
M submodule
ok 2 - "reset <submodule>" updates the index
expecting success of 2013.3 '"checkout <submodule>" 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
Updated 0 paths from f0404a9
Updated 0 paths from 29aef3d
ok 3 - "checkout <submodule>" updates the index only
expecting success of 2013.4 '"checkout <submodule>" honors diff.ignoreSubmodules':
git config diff.ignoreSubmodules dirty &&
echo x> submodule/untracked &&
git checkout HEAD >actual 2>&1 &&
test_must_be_empty actual
ok 4 - "checkout <submodule>" honors diff.ignoreSubmodules
expecting success of 2013.5 '"checkout <submodule>" 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 5 - "checkout <submodule>" honors submodule.*.ignore from .gitmodules
expecting success of 2013.6 '"checkout <submodule>" 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
ok 6 - "checkout <submodule>" honors submodule.*.ignore from .git/config
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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1/.git/
[master (root-commit) f401f36] Base inside first submodule
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 file1
create mode 100644 file2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub2/.git/
[master (root-commit) f2c1bb9] nested submodule base
Author: A U Thor <author@example.com>
3 files changed, 4 insertions(+)
create mode 100644 .gitignore
create mode 100644 file1
create mode 100644 file2
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_repo/.git/
[master (root-commit) 3950f7e] Base
Author: A U Thor <author@example.com>
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 '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_repo/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_repo/uninitialized_sub'...
done.
[add_sub1 30024d7] Add sub1
Author: A U Thor <author@example.com>
2 files changed, 8 insertions(+)
create mode 100644 .gitmodules
create mode 160000 uninitialized_sub
Switched to a new branch 'remove_sub1'
warning: unable to rmdir 'sub1': Directory not empty
warning: unable to rmdir 'uninitialized_sub': Directory not empty
[remove_sub1 d6f9aa6] Revert "Add sub1"
Author: A U Thor <author@example.com>
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 <author@example.com>
2 files changed, 2 insertions(+), 1 deletion(-)
create mode 100644 file3
To /<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1
* [new branch] modifications -> modifications
[modify_sub1 1f84fbc] Modify sub1
Author: A U Thor <author@example.com>
Switched to a new branch 'add_nested_sub'
Switched to a new branch 'add_nested_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_repo/sub1/sub2'...
done.
[add_nested_sub 50491a1] add a nested submodule
Author: A U Thor <author@example.com>
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 <author@example.com>
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 <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file3
[modify_sub1_recursively 6cc4170] update nested sub
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
[modify_sub1_recursively 934e1af] update sub1, that updates nested sub
Author: A U Thor <author@example.com>
To /<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1
* [new branch] modify_sub1_recursively -> modify_sub1_recursively
To /<<PKGBUILDDIR>>/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 <author@example.com>
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'
[replace_directory_with_sub1 2061bb3] Revert "Replace sub1 with directory"
Author: A U Thor <author@example.com>
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 <author@example.com>
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 <author@example.com>
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 <author@example.com>
Switched to a new branch 'valid_sub1'
[valid_sub1 f248045] Revert "Invalid sub1 commit"
Author: A U Thor <author@example.com>
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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
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
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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
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 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 'origin/replace_sub1_with_file'.
fatal: Needed a single revision
branch 'replace_file_with_sub1' set up to track 'origin/replace_file_with_sub1'.
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 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 'origin/replace_sub1_with_directory'.
fatal: Needed a single revision
branch 'replace_directory_with_sub1' set up to track 'origin/replace_directory_with_sub1'.
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 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 'origin/no_submodule'.
branch 'modify_sub1_recursively' set up to track 'origin/modify_sub1_recursively'.
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
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'remove_sub1' set up to track 'origin/remove_sub1'.
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 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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'remove_sub1' set up to track 'origin/remove_sub1'.
Migrating git directory of 'sub1' from
'/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1/.git' to
'/<<PKGBUILDDIR>>/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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
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 'origin/add_nested_sub'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '50491a1d91d7be663c2f0e01632adafaa8ad1784'
Submodule 'sub2' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub2) registered for path 'sub1/sub2'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/no_submodule'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'modify_sub1' set up to track 'origin/modify_sub1'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'invalid_sub1' set up to track 'origin/invalid_sub1'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/modify_sub1'.
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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
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 -rf submodule_update/.git/info" &&
prolog &&
reset_work_tree_to_interested no_submodule &&
(
cd submodule_update &&
git branch -t add_sub1 origin/add_sub1 &&
: >sub1 &&
mkdir .git/info &&
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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
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 &&
rm -rf .git/modules/sub1/info &&
git branch -t replace_sub1_with_file origin/replace_sub1_with_file &&
mkdir .git/modules/sub1/info &&
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'modify_sub1' set up to track 'origin/modify_sub1'.
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 'origin/add_nested_sub'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '50491a1d91d7be663c2f0e01632adafaa8ad1784'
Submodule 'sub2' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub2) registered for path 'sub1/sub2'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/modify_sub1_recursively'.
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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
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 'origin/replace_sub1_with_file'.
fatal: Needed a single revision
branch 'replace_file_with_sub1' set up to track 'origin/replace_file_with_sub1'.
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 'origin/replace_sub1_with_directory'.
fatal: Needed a single revision
branch 'replace_directory_with_sub1' set up to track 'origin/replace_directory_with_sub1'.
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 'origin/no_submodule'.
branch 'modify_sub1_recursively' set up to track 'origin/modify_sub1_recursively'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'remove_sub1' set up to track 'origin/remove_sub1'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'remove_sub1' set up to track 'origin/remove_sub1'.
Migrating git directory of 'sub1' from
'/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1/.git' to
'/<<PKGBUILDDIR>>/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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
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 'origin/add_nested_sub'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out '50491a1d91d7be663c2f0e01632adafaa8ad1784'
Submodule 'sub2' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub2) registered for path 'sub1/sub2'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/no_submodule'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'modify_sub1' set up to track 'origin/modify_sub1'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'invalid_sub1' set up to track 'origin/invalid_sub1'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/modify_sub1'.
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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
Migrating git directory of 'sub1' from
'/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1/.git' to
'/<<PKGBUILDDIR>>/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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
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 'origin/invalid_sub1'.
fatal: Needed a single revision
branch 'valid_sub1' set up to track 'origin/valid_sub1'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'modify_sub1' set up to track 'origin/modify_sub1'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
Switched to branch 'add_sub1'
Your branch is up to date with 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
Switched to branch 'add_sub1'
Your branch is up to date with 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
fatal: Needed a single revision
branch 'replace_file_with_sub1' set up to track 'origin/replace_file_with_sub1'.
Switched to branch 'replace_file_with_sub1'
Your branch is up to date with 'origin/replace_file_with_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
fatal: Needed a single revision
branch 'replace_directory_with_sub1' set up to track 'origin/replace_directory_with_sub1'.
Switched to branch 'replace_directory_with_sub1'
Your branch is up to date with 'origin/replace_directory_with_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'remove_sub1' set up to track 'origin/remove_sub1'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'remove_sub1' set up to track 'origin/remove_sub1'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'modify_sub1' set up to track 'origin/modify_sub1'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'invalid_sub1' set up to track 'origin/invalid_sub1'.
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
fatal: 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 'origin/invalid_sub1'.
fatal: Needed a single revision
branch 'valid_sub1' set up to track 'origin/valid_sub1'.
Switched to branch 'valid_sub1'
Your branch is up to date with 'origin/valid_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
Switched to branch 'add_sub1'
Your branch is up to date with 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
Switched to branch 'add_sub1'
Your branch is up to date with 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
fatal: Needed a single revision
branch 'replace_file_with_sub1' set up to track 'origin/replace_file_with_sub1'.
Switched to branch 'replace_file_with_sub1'
Your branch is up to date with 'origin/replace_file_with_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
fatal: Needed a single revision
branch 'replace_directory_with_sub1' set up to track 'origin/replace_directory_with_sub1'.
Switched to branch 'replace_directory_with_sub1'
Your branch is up to date with 'origin/replace_directory_with_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'remove_sub1' set up to track 'origin/remove_sub1'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'remove_sub1' set up to track 'origin/remove_sub1'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_directory'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/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 'origin/replace_sub1_with_file'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'modify_sub1' set up to track 'origin/modify_sub1'.
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 'origin/add_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f'
branch 'invalid_sub1' set up to track 'origin/invalid_sub1'.
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
fatal: 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 'origin/invalid_sub1'.
fatal: Needed a single revision
branch 'valid_sub1' set up to track 'origin/valid_sub1'.
Switched to branch 'valid_sub1'
Your branch is up to date with 'origin/valid_sub1'.
Submodule 'sub1' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1'
Submodule 'uninitialized_sub' (/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'...
done.
Cloning into '/<<PKGBUILDDIR>>/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 'origin/no_submodule'.
branch 'add_sub1' set up to track 'origin/add_sub1'.
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2406-worktree-repair.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2406-worktree-repair/.git/
expecting success of 2406.1 'setup':
test_commit init
[master (root-commit) 2519212] init
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
ok 1 - setup
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
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 2 - skip missing worktree
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
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
error: not a directory: /<<PKGBUILDDIR>>/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 /<<PKGBUILDDIR>>/t/trash directory.t2406-worktree-repair/repo/.git/
error: .git is not a file: /<<PKGBUILDDIR>>/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: /<<PKGBUILDDIR>>/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: /<<PKGBUILDDIR>>/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 /<<PKGBUILDDIR>>/t/trash directory.t2406-worktree-repair/other/.git/
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
repair: .git file incorrect: /<<PKGBUILDDIR>>/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: /<<PKGBUILDDIR>>/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: /<<PKGBUILDDIR>>/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: /<<PKGBUILDDIR>>/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 /<<PKGBUILDDIR>>/t/trash directory.t2406-worktree-repair/not-a-worktree/.git/
error: unable to locate repository; .git is not a file: /<<PKGBUILDDIR>>/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 not referencing repo':
test_when_finished "rm -rf side not-a-repo && git worktree prune" &&
git worktree add --detach side &&
sed s,\.git/worktrees/side$,not-a-repo, side/.git >side/.newgit &&
mv side/.newgit side/.git &&
mkdir not-a-repo &&
test_must_fail git worktree repair side 2>err &&
test_i18ngrep ".git file does not reference a repository" err
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
error: unable to locate repository; .git file does not reference a repository: /<<PKGBUILDDIR>>/t/trash directory.t2406-worktree-repair/side/.git
ok 13 - repo not found; .git not referencing repo
expecting success of 2406.14 '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: /<<PKGBUILDDIR>>/t/trash directory.t2406-worktree-repair/moved/.git
ok 14 - repo not found; .git file broken
expecting success of 2406.15 '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 2>err &&
test_cmp expect .git/worktrees/orig/gitdir &&
test_i18ngrep "gitdir unreadable" err
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
repair: gitdir unreadable: /<<PKGBUILDDIR>>/t/trash directory.t2406-worktree-repair/.git/worktrees/orig/gitdir
ok 15 - repair broken gitdir
expecting success of 2406.16 '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 2>err &&
test_cmp expect .git/worktrees/orig/gitdir &&
test_i18ngrep "gitdir incorrect" err
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
repair: gitdir incorrect: /<<PKGBUILDDIR>>/t/trash directory.t2406-worktree-repair/.git/worktrees/orig/gitdir
ok 16 - repair incorrect gitdir
expecting success of 2406.17 '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 2>err &&
test_cmp expect .git/worktrees/orig/gitdir &&
test_i18ngrep "gitdir incorrect" err
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
repair: gitdir incorrect: /<<PKGBUILDDIR>>/t/trash directory.t2406-worktree-repair/.git/worktrees/orig/gitdir
ok 17 - repair gitdir (implicit) from linked worktree
expecting success of 2406.18 '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 2>err &&
test_cmp expect .git/worktrees/orig/gitdir &&
test_must_be_empty err
Preparing worktree (detached HEAD 2519212)
HEAD is now at 2519212 init
ok 18 - unable to repair gitdir (implicit) from main worktree
expecting success of 2406.19 '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 2>err &&
test_cmp expect1 .git/worktrees/orig1/gitdir &&
test_cmp expect2 .git/worktrees/orig2/gitdir &&
test_i18ngrep "gitdir incorrect:.*orig1/gitdir$" err &&
test_i18ngrep "gitdir incorrect:.*orig2/gitdir$" 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: /<<PKGBUILDDIR>>/t/trash directory.t2406-worktree-repair/.git/worktrees/orig1/gitdir
repair: gitdir incorrect: /<<PKGBUILDDIR>>/t/trash directory.t2406-worktree-repair/.git/worktrees/orig2/gitdir
ok 19 - repair multiple gitdir files
expecting success of 2406.20 'repair moved main and linked worktrees':
test_when_finished "rm -rf main side mainmoved sidemoved" &&
test_create_repo main &&
test_commit -C main init &&
git -C main worktree add --detach ../side &&
sed "s,side/\.git$,sidemoved/.git," \
main/.git/worktrees/side/gitdir >expect-gitdir &&
sed "s,main/.git/worktrees/side$,mainmoved/.git/worktrees/side," \
side/.git >expect-gitfile &&
mv main mainmoved &&
mv side sidemoved &&
git -C mainmoved worktree repair ../sidemoved &&
test_cmp expect-gitdir mainmoved/.git/worktrees/side/gitdir &&
test_cmp expect-gitfile sidemoved/.git
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2406-worktree-repair/main/.git/
[master (root-commit) f54694c] init
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
Preparing worktree (detached HEAD f54694c)
HEAD is now at f54694c init
repair: gitdir incorrect: .git/worktrees/side/gitdir
repair: .git file broken: /<<PKGBUILDDIR>>/t/trash directory.t2406-worktree-repair/sidemoved
ok 20 - repair moved main and linked worktrees
# passed all 20 test(s)
1..20
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2407-worktree-heads.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/.git/
expecting success of 2407.1 'setup':
test_commit init &&
for i in 1 2 3 4
do
git checkout -b conflict-$i &&
echo "not I" >$i.t &&
git add $i.t &&
git commit -m "will conflict" &&
git checkout - &&
test_commit $i &&
git branch wt-$i &&
git branch fake-$i &&
git worktree add wt-$i wt-$i || return 1
done &&
# Create a server that updates each branch by one commit
git init server &&
test_commit -C server initial &&
git remote add server ./server &&
for i in 1 2 3 4
do
git -C server checkout -b wt-$i &&
test_commit -C server A-$i || return 1
done &&
for i in 1 2
do
git -C server checkout -b fake-$i &&
test_commit -C server f-$i || return 1
done
[master (root-commit) 2519212] init
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
Switched to a new branch 'conflict-1'
[conflict-1 0bd9076] will conflict
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 1.t
Switched to branch 'master'
[master dd232bf] 1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 1.t
Preparing worktree (checking out 'wt-1')
HEAD is now at dd232bf 1
Switched to a new branch 'conflict-2'
[conflict-2 881ff7f] will conflict
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 2.t
Switched to branch 'master'
[master 8f55bc3] 2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 2.t
Preparing worktree (checking out 'wt-2')
HEAD is now at 8f55bc3 2
Switched to a new branch 'conflict-3'
[conflict-3 016e7ca] will conflict
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 3.t
Switched to branch 'master'
[master 4c93b0a] 3
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 3.t
Preparing worktree (checking out 'wt-3')
HEAD is now at 4c93b0a 3
Switched to a new branch 'conflict-4'
[conflict-4 11365f4] will conflict
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 4.t
Switched to branch 'master'
[master 3fbd4b0] 4
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 4.t
Preparing worktree (checking out 'wt-4')
HEAD is now at 3fbd4b0 4
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/server/.git/
[master (root-commit) 31243c6] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 initial.t
Switched to a new branch 'wt-1'
[wt-1 4e3ca6d] A-1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A-1.t
Switched to a new branch 'wt-2'
[wt-2 3582f45] A-2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A-2.t
Switched to a new branch 'wt-3'
[wt-3 b62f76d] A-3
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A-3.t
Switched to a new branch 'wt-4'
[wt-4 5e1557d] A-4
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A-4.t
Switched to a new branch 'fake-1'
[fake-1 ae0524d] f-1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 f-1.t
Switched to a new branch 'fake-2'
[fake-2 8b85f46] f-2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 f-2.t
ok 1 - setup
expecting success of 2407.2 'refuse to overwrite: checked out in worktree':
for i in 1 2 3 4
do
test_must_fail git branch -f wt-$i HEAD 2>err &&
grep "cannot force update the branch" err &&
test_must_fail git branch -D wt-$i 2>err &&
grep "Cannot delete branch" err || return 1
done
fatal: cannot force update the branch 'wt-1' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-1'
error: Cannot delete branch 'wt-1' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-1'
fatal: cannot force update the branch 'wt-2' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-2'
error: Cannot delete branch 'wt-2' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-2'
fatal: cannot force update the branch 'wt-3' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-3'
error: Cannot delete branch 'wt-3' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-3'
fatal: cannot force update the branch 'wt-4' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-4'
error: Cannot delete branch 'wt-4' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-4'
ok 2 - refuse to overwrite: checked out in worktree
expecting success of 2407.3 'refuse to overwrite: worktree in bisect':
test_when_finished git -C wt-4 bisect reset &&
# Set up a bisect so HEAD no longer points to wt-4.
git -C wt-4 bisect start &&
git -C wt-4 bisect bad wt-4 &&
git -C wt-4 bisect good wt-1 &&
test_must_fail git branch -f wt-4 HEAD 2>err &&
grep "cannot force update the branch 'wt-4' checked out at.*wt-4" err
status: waiting for both good and bad commits
status: waiting for good commit(s), bad commit known
Bisecting: 0 revisions left to test after this (roughly 1 step)
[4c93b0a8594e03729f8d4346495db54cf8d767e9] 3
fatal: cannot force update the branch 'wt-4' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-4'
Previous HEAD position was 4c93b0a 3
Switched to branch 'wt-4'
ok 3 - refuse to overwrite: worktree in bisect
expecting success of 2407.4 'refuse to overwrite: worktree in rebase (apply)':
test_when_finished git -C wt-2 rebase --abort &&
# This will fail part-way through due to a conflict.
test_must_fail git -C wt-2 rebase --apply conflict-2 &&
test_must_fail git branch -f wt-2 HEAD 2>err &&
grep "cannot force update the branch 'wt-2' checked out at.*wt-2" err
First, rewinding head to replay your work on top of it...
Applying: 2
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Merging:
881ff7f will conflict
virtual 2
found 1 common ancestor:
virtual 4b825dc642cb6eb9a060e54bf8d69288fbee4904
CONFLICT (add/add): Merge conflict in 2.t
Auto-merging 2.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 2
Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", 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".
fatal: cannot force update the branch 'wt-2' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-2'
ok 4 - refuse to overwrite: worktree in rebase (apply)
expecting success of 2407.5 'refuse to overwrite: worktree in rebase (merge)':
test_when_finished git -C wt-2 rebase --abort &&
# This will fail part-way through due to a conflict.
test_must_fail git -C wt-2 rebase conflict-2 &&
test_must_fail git branch -f wt-2 HEAD 2>err &&
grep "cannot force update the branch 'wt-2' checked out at.*wt-2" err
Rebasing (1/1)
Auto-merging 2.t
CONFLICT (add/add): Merge conflict in 2.t
error: could not apply 8f55bc3... 2
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 8f55bc3... 2
fatal: cannot force update the branch 'wt-2' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-2'
ok 5 - refuse to overwrite: worktree in rebase (merge)
expecting success of 2407.6 'refuse to overwrite: worktree in rebase with --update-refs':
test_when_finished git -C wt-3 rebase --abort &&
git branch -f can-be-updated wt-3 &&
test_must_fail git -C wt-3 rebase --update-refs conflict-3 &&
for i in 3 4
do
test_must_fail git branch -f can-be-updated HEAD 2>err &&
grep "cannot force update the branch 'can-be-updated' checked out at.*wt-3" err ||
return 1
done
Rebasing (1/4)
Auto-merging 3.t
CONFLICT (add/add): Merge conflict in 3.t
error: could not apply 4c93b0a... 3
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 4c93b0a... 3
fatal: cannot force update the branch 'can-be-updated' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-3'
fatal: cannot force update the branch 'can-be-updated' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-3'
ok 6 - refuse to overwrite: worktree in rebase with --update-refs
expecting success of 2407.7 'refuse to fetch over ref: checked out':
test_must_fail git fetch server +refs/heads/wt-3:refs/heads/wt-3 2>err &&
grep "refusing to fetch into branch 'refs/heads/wt-3'" err &&
# General fetch into refs/heads/ will fail on first ref,
# so use a generic error message check.
test_must_fail git fetch server +refs/heads/*:refs/heads/* 2>err &&
grep "refusing to fetch into branch" err
fatal: refusing to fetch into branch 'refs/heads/wt-3' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-3'
fatal: refusing to fetch into branch 'refs/heads/master' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads'
ok 7 - refuse to fetch over ref: checked out
expecting success of 2407.8 'refuse to fetch over ref: worktree in bisect':
test_when_finished git -C wt-4 bisect reset &&
# Set up a bisect so HEAD no longer points to wt-4.
git -C wt-4 bisect start &&
git -C wt-4 bisect bad wt-4 &&
git -C wt-4 bisect good wt-1 &&
test_must_fail git fetch server +refs/heads/wt-4:refs/heads/wt-4 2>err &&
grep "refusing to fetch into branch" err
status: waiting for both good and bad commits
status: waiting for good commit(s), bad commit known
Bisecting: 0 revisions left to test after this (roughly 1 step)
[4c93b0a8594e03729f8d4346495db54cf8d767e9] 3
fatal: refusing to fetch into branch 'refs/heads/wt-4' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-4'
Previous HEAD position was 4c93b0a 3
Switched to branch 'wt-4'
ok 8 - refuse to fetch over ref: worktree in bisect
expecting success of 2407.9 'refuse to fetch over ref: worktree in rebase':
test_when_finished git -C wt-3 rebase --abort &&
# This will fail part-way through due to a conflict.
test_must_fail git -C wt-3 rebase conflict-3 &&
test_must_fail git fetch server +refs/heads/wt-3:refs/heads/wt-3 2>err &&
grep "refusing to fetch into branch" err
Rebasing (1/1)
Auto-merging 3.t
CONFLICT (add/add): Merge conflict in 3.t
error: could not apply 4c93b0a... 3
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 4c93b0a... 3
fatal: refusing to fetch into branch 'refs/heads/wt-3' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-3'
ok 9 - refuse to fetch over ref: worktree in rebase
expecting success of 2407.10 'refuse to overwrite when in error states':
test_when_finished rm -rf .git/worktrees/wt-*/rebase-merge &&
test_when_finished rm -rf .git/worktrees/wt-*/BISECT_* &&
# Both branches are currently under rebase.
mkdir -p .git/worktrees/wt-3/rebase-merge &&
touch .git/worktrees/wt-3/rebase-merge/interactive &&
echo refs/heads/fake-1 >.git/worktrees/wt-3/rebase-merge/head-name &&
echo refs/heads/fake-2 >.git/worktrees/wt-3/rebase-merge/onto &&
mkdir -p .git/worktrees/wt-4/rebase-merge &&
touch .git/worktrees/wt-4/rebase-merge/interactive &&
echo refs/heads/fake-2 >.git/worktrees/wt-4/rebase-merge/head-name &&
echo refs/heads/fake-1 >.git/worktrees/wt-4/rebase-merge/onto &&
# Both branches are currently under bisect.
touch .git/worktrees/wt-4/BISECT_LOG &&
echo refs/heads/fake-2 >.git/worktrees/wt-4/BISECT_START &&
touch .git/worktrees/wt-1/BISECT_LOG &&
echo refs/heads/fake-1 >.git/worktrees/wt-1/BISECT_START &&
for i in 1 2
do
test_must_fail git branch -f fake-$i HEAD 2>err &&
grep "cannot force update the branch 'fake-$i' checked out at" err ||
return 1
done
fatal: cannot force update the branch 'fake-1' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-3'
fatal: cannot force update the branch 'fake-2' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t2407-worktree-heads/wt-4'
ok 10 - refuse to overwrite when in error states
expecting success of 2407.11 'refuse to overwrite during rebase with --update-refs':
git commit --fixup HEAD~2 --allow-empty &&
(
set_cat_todo_editor &&
test_must_fail git rebase -i --update-refs HEAD~3 >todo &&
! grep "update-refs" todo
) &&
git branch -f allow-update HEAD~2 &&
(
set_cat_todo_editor &&
test_must_fail git rebase -i --update-refs HEAD~3 >todo &&
grep "update-ref refs/heads/allow-update" todo
)
[master 3e1ca9c] fixup! 2
Author: A U Thor <author@example.com>
error: There was a problem with the editor '"$FAKE_EDITOR"'.
error: There was a problem with the editor '"$FAKE_EDITOR"'.
update-ref refs/heads/allow-update
ok 11 - refuse to overwrite during rebase with --update-refs
expecting success of 2407.12 '$EDITOR and friends are unchanged':
test_editor_unchanged
ok 12 - $EDITOR and friends are unchanged
# passed all 12 test(s)
1..12
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3000-ls-files-others.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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/|" <expected1 >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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3000-ls-files-others/super/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3000-ls-files-others/sub/.git/
[master (root-commit) 8c0a349] sub
Author: A U Thor <author@example.com>
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 /<<PKGBUILDDIR>>/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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3000-ls-files-others/nested/untracked/deep/empty/.git/
ok 16 - ls-files -o avoids listing untracked non-matching gitdir
# passed all 16 test(s)
1..16
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2500-untracked-overwriting.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2500-untracked-overwriting/.git/
expecting success of 2500.1 'reset --hard will nuke untracked files/dirs':
test_setup_reset hard &&
(
cd reset_hard &&
git ls-tree -r stable &&
git log --all --name-status --oneline &&
git ls-tree -r work &&
mkdir foo.t &&
echo precious >foo.t/file &&
echo foo >expect &&
git reset --hard work &&
# check that untracked directory foo.t/ was nuked
test_path_is_file foo.t &&
test_cmp expect foo.t
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2500-untracked-overwriting/reset_hard/.git/
[master (root-commit) 2519212] init
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
Switched to branch 'work'
[work cb1b896] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
Switched to branch 'stable'
100644 blob b1b716105590454bfc4c0247f193a04088f39c7f init.t
cb1b896 foo
A foo.t
2519212 init
A init.t
100644 blob 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 foo.t
100644 blob b1b716105590454bfc4c0247f193a04088f39c7f init.t
HEAD is now at cb1b896 foo
ok 1 - reset --hard will nuke untracked files/dirs
expecting success of 2500.2 'reset --merge will preserve untracked files/dirs':
test_setup_reset merge &&
(
cd reset_merge &&
mkdir foo.t &&
echo precious >foo.t/file &&
cp foo.t/file expect &&
test_must_fail git reset --merge work 2>error &&
test_cmp expect foo.t/file &&
grep "Updating .foo.t. would lose untracked files" error
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2500-untracked-overwriting/reset_merge/.git/
[master (root-commit) 2519212] init
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
Switched to branch 'work'
[work cb1b896] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
Switched to branch 'stable'
error: Updating 'foo.t' would lose untracked files in it
ok 2 - reset --merge will preserve untracked files/dirs
expecting success of 2500.3 'reset --keep will preserve untracked files/dirs':
test_setup_reset keep &&
(
cd reset_keep &&
mkdir foo.t &&
echo precious >foo.t/file &&
cp foo.t/file expect &&
test_must_fail git reset --merge work 2>error &&
test_cmp expect foo.t/file &&
grep "Updating.*foo.t.*would lose untracked files" error
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2500-untracked-overwriting/reset_keep/.git/
[master (root-commit) 2519212] init
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
Switched to branch 'work'
[work cb1b896] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
Switched to branch 'stable'
error: Updating 'foo.t' would lose untracked files in it
ok 3 - reset --keep will preserve untracked files/dirs
expecting success of 2500.4 'checkout -m does not nuke untracked file':
test_setup_checkout_m &&
(
cd checkout &&
# Tweak filler
test_write_lines this file has some >filler &&
# Make an untracked file, save its contents in "expect"
echo precious >notes.txt &&
cp notes.txt expect &&
test_must_fail git checkout -m work &&
test_cmp expect notes.txt
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2500-untracked-overwriting/checkout/.git/
[master (root-commit) 2519212] init
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
[master 7d7f42a] filler
Author: A U Thor <author@example.com>
1 file changed, 3 insertions(+)
create mode 100644 filler
Switched to a new branch 'work'
[work bac6a98] filler
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 notes.txt
Switched to branch 'stable'
error: Untracked working tree file 'notes.txt' would be overwritten by merge.
ok 4 - checkout -m does not nuke untracked file
expecting success of 2500.5 'git rebase --abort and untracked files':
test_setup_sequencing rebase_abort_and_untracked &&
(
cd sequencing_rebase_abort_and_untracked &&
git checkout fooey &&
test_must_fail git rebase simple &&
cat init.t &&
git rm init.t &&
echo precious >init.t &&
cp init.t expect &&
git status --porcelain &&
test_must_fail git rebase --abort &&
test_cmp expect init.t
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2500-untracked-overwriting/sequencing_rebase_abort_and_untracked/.git/
[master (root-commit) 2519212] init
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
[master 8220a2b] filler
Author: A U Thor <author@example.com>
1 file changed, 5 insertions(+)
create mode 100644 filler
[master 4cfedf0] foo/bar/baz
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo/bar/baz.t
Switched to branch 'fooey'
rm 'foo/bar/baz.t'
[fooey d39f842] changes
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 foo/bar/baz.t
Switched to branch 'simple'
[simple 15a37e4] another
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 newfile
Switched to branch 'fooey'
Rebasing (1/1)
Auto-merging filler
CONFLICT (content): Merge conflict in filler
error: could not apply d39f842... changes
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply d39f842... changes
init
rm 'init.t'
UU filler
D foo/bar/baz.t
D init.t
?? expect
?? init.t
error: The following untracked working tree files would be overwritten by reset:
init.t
Please move or remove them before you reset.
Aborting
fatal: could not move back to d39f842c8a54822614a71d9e503b01b89b57e3bf
ok 5 - git rebase --abort and untracked files
expecting success of 2500.6 'git rebase fast forwarding and untracked files':
test_setup_sequencing rebase_fast_forward_and_untracked &&
(
cd sequencing_rebase_fast_forward_and_untracked &&
git checkout init &&
echo precious >filler &&
cp filler expect &&
test_must_fail git rebase init simple &&
test_cmp expect filler
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2500-untracked-overwriting/sequencing_rebase_fast_forward_and_untracked/.git/
[master (root-commit) 2519212] init
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
[master 8220a2b] filler
Author: A U Thor <author@example.com>
1 file changed, 5 insertions(+)
create mode 100644 filler
[master 4cfedf0] foo/bar/baz
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo/bar/baz.t
Switched to branch 'fooey'
rm 'foo/bar/baz.t'
[fooey d39f842] changes
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 foo/bar/baz.t
Switched to branch 'simple'
[simple 15a37e4] another
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 newfile
Note: switching to '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.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 2519212 init
error: The following untracked working tree files would be overwritten by checkout:
filler
Please move or remove them before you switch branches.
Aborting
error: could not switch to simple
ok 6 - git rebase fast forwarding and untracked files
checking known breakage of 2500.7 'git rebase --autostash and untracked files':
test_setup_sequencing rebase_autostash_and_untracked &&
(
cd sequencing_rebase_autostash_and_untracked &&
git checkout simple &&
git rm filler &&
mkdir filler &&
echo precious >filler/file &&
cp filler/file expect &&
git rebase --autostash init &&
test_path_is_file filler/file
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2500-untracked-overwriting/sequencing_rebase_autostash_and_untracked/.git/
[master (root-commit) 2519212] init
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
[master 8220a2b] filler
Author: A U Thor <author@example.com>
1 file changed, 5 insertions(+)
create mode 100644 filler
[master 4cfedf0] foo/bar/baz
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo/bar/baz.t
Switched to branch 'fooey'
rm 'foo/bar/baz.t'
[fooey d39f842] changes
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 foo/bar/baz.t
Switched to branch 'simple'
[simple 15a37e4] another
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 newfile
Already on 'simple'
rm 'filler'
error: Updating the following directories would lose untracked files in them:
filler
Aborting
fatal: could not reset --hard
Created autostash: ae7ed59
not ok 7 - git rebase --autostash and untracked files # TODO known breakage
checking known breakage of 2500.8 'git stash and untracked files':
test_setup_sequencing stash_and_untracked_files &&
(
cd sequencing_stash_and_untracked_files &&
git checkout simple &&
git rm filler &&
mkdir filler &&
echo precious >filler/file &&
cp filler/file expect &&
git status --porcelain &&
git stash push &&
git status --porcelain &&
test_path_is_file filler/file
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2500-untracked-overwriting/sequencing_stash_and_untracked_files/.git/
[master (root-commit) 2519212] init
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
[master 8220a2b] filler
Author: A U Thor <author@example.com>
1 file changed, 5 insertions(+)
create mode 100644 filler
[master 4cfedf0] foo/bar/baz
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo/bar/baz.t
Switched to branch 'fooey'
rm 'foo/bar/baz.t'
[fooey d39f842] changes
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 foo/bar/baz.t
Switched to branch 'simple'
[simple 15a37e4] another
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 newfile
Already on 'simple'
rm 'filler'
D filler
?? expect
?? filler/
Saved working directory and index state WIP on simple: 15a37e4 another
?? expect
File filler/file doesn't exist
not ok 8 - git stash and untracked files # TODO known breakage
expecting success of 2500.9 'git am --abort and untracked dir vs. unmerged file':
test_setup_sequencing am_abort_and_untracked &&
(
cd sequencing_am_abort_and_untracked &&
git format-patch -1 --stdout fooey >changes.mbox &&
test_must_fail git am --3way changes.mbox &&
# Delete the conflicted file; we will stage and commit it later
rm filler &&
# Put an unrelated untracked directory there
mkdir filler &&
echo foo >filler/file1 &&
echo bar >filler/file2 &&
test_must_fail git am --abort 2>errors &&
test_path_is_dir filler &&
grep "Updating .filler. would lose untracked files in it" errors
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2500-untracked-overwriting/sequencing_am_abort_and_untracked/.git/
[master (root-commit) 2519212] init
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
[master 8220a2b] filler
Author: A U Thor <author@example.com>
1 file changed, 5 insertions(+)
create mode 100644 filler
[master 4cfedf0] foo/bar/baz
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo/bar/baz.t
Switched to branch 'fooey'
rm 'foo/bar/baz.t'
[fooey d39f842] changes
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 foo/bar/baz.t
Switched to branch 'simple'
[simple 15a37e4] another
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 newfile
Applying: changes
Using index info to reconstruct a base tree...
M filler
Falling back to patching base and 3-way merge...
Merging:
15a37e4 another
virtual changes
found 1 common ancestor:
virtual 3f7dfa0c5a54951d5d8082a6eda7692dfeb9ce47
Removing foo/bar/baz.t
Auto-merging filler
CONFLICT (content): Merge conflict in filler
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 changes
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".
error: Updating 'filler' would lose untracked files in it
ok 9 - git am --abort and untracked dir vs. unmerged file
expecting success of 2500.10 'git am --skip and untracked dir vs deleted file':
test_setup_sequencing am_skip_and_untracked &&
(
cd sequencing_am_skip_and_untracked &&
git checkout fooey &&
git format-patch -1 --stdout simple >changes.mbox &&
test_must_fail git am --3way changes.mbox &&
# Delete newfile
rm newfile &&
# Put an unrelated untracked directory there
mkdir newfile &&
echo foo >newfile/file1 &&
echo bar >newfile/file2 &&
# Change our mind about resolutions, just skip this patch
test_must_fail git am --skip 2>errors &&
test_path_is_dir newfile &&
grep "Updating .newfile. would lose untracked files in it" errors
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2500-untracked-overwriting/sequencing_am_skip_and_untracked/.git/
[master (root-commit) 2519212] init
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
[master 8220a2b] filler
Author: A U Thor <author@example.com>
1 file changed, 5 insertions(+)
create mode 100644 filler
[master 4cfedf0] foo/bar/baz
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo/bar/baz.t
Switched to branch 'fooey'
rm 'foo/bar/baz.t'
[fooey d39f842] changes
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 foo/bar/baz.t
Switched to branch 'simple'
[simple 15a37e4] another
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 newfile
Switched to branch 'fooey'
Applying: another
Using index info to reconstruct a base tree...
M filler
Falling back to patching base and 3-way merge...
Merging:
d39f842 changes
virtual another
found 1 common ancestor:
virtual a4566c4813b6ad70d63b32fcd2dda30547574648
Auto-merging filler
CONFLICT (content): Merge conflict in filler
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 another
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".
error: Updating 'newfile' would lose untracked files in it
ok 10 - git am --skip and untracked dir vs deleted file
# still have 2 known breakage(s)
# passed all remaining 8 test(s)
1..10
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t1092-sparse-checkout-compatibility.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1092-sparse-checkout-compatibility/.git/
expecting success of 1092.1 'setup':
git init initial-repo &&
(
GIT_TEST_SPARSE_INDEX=0 &&
cd initial-repo &&
echo a >a &&
echo "after deep" >e &&
echo "after folder1" >g &&
echo "after x" >z &&
mkdir folder1 folder2 deep before x &&
echo "before deep" >before/a &&
echo "before deep again" >before/b &&
mkdir deep/deeper1 deep/deeper2 deep/before deep/later &&
mkdir deep/deeper1/deepest &&
mkdir deep/deeper1/deepest2 &&
mkdir deep/deeper1/deepest3 &&
echo "after deeper1" >deep/e &&
echo "after deepest" >deep/deeper1/e &&
cp a folder1 &&
cp a folder2 &&
cp a x &&
cp a deep &&
cp a deep/before &&
cp a deep/deeper1 &&
cp a deep/deeper2 &&
cp a deep/later &&
cp a deep/deeper1/deepest &&
cp a deep/deeper1/deepest2 &&
cp a deep/deeper1/deepest3 &&
cp -r deep/deeper1/ deep/deeper2 &&
mkdir deep/deeper1/0 &&
mkdir deep/deeper1/0/0 &&
touch deep/deeper1/0/1 &&
touch deep/deeper1/0/0/0 &&
>folder1- &&
>folder1.x &&
>folder10 &&
cp -r deep/deeper1/0 folder1 &&
cp -r deep/deeper1/0 folder2 &&
echo >>folder1/0/0/0 &&
echo >>folder2/0/1 &&
git add . &&
git commit -m "initial commit" &&
git checkout -b base &&
for dir in folder1 folder2 deep
do
git checkout -b update-$dir base &&
echo "updated $dir" >$dir/a &&
git commit -a -m "update $dir" || return 1
done &&
git checkout -b rename-base base &&
cat >folder1/larger-content <<-\EOF &&
matching
lines
help
inexact
renames
EOF
cp folder1/larger-content folder2/ &&
cp folder1/larger-content deep/deeper1/ &&
git add . &&
git commit -m "add interesting rename content" &&
git checkout -b rename-out-to-out rename-base &&
mv folder1/a folder2/b &&
mv folder1/larger-content folder2/edited-content &&
echo >>folder2/edited-content &&
echo >>folder2/0/1 &&
echo stuff >>deep/deeper1/a &&
git add . &&
git commit -m "rename folder1/... to folder2/..." &&
git checkout -b rename-out-to-in rename-base &&
mv folder1/a deep/deeper1/b &&
echo more stuff >>deep/deeper1/a &&
rm folder2/0/1 &&
mkdir folder2/0/1 &&
echo >>folder2/0/1/1 &&
mv folder1/larger-content deep/deeper1/edited-content &&
echo >>deep/deeper1/edited-content &&
git add . &&
git commit -m "rename folder1/... to deep/deeper1/..." &&
git checkout -b rename-in-to-out rename-base &&
mv deep/deeper1/a folder1/b &&
echo >>folder2/0/1 &&
rm -rf folder1/0/0 &&
echo >>folder1/0/0 &&
mv deep/deeper1/larger-content folder1/edited-content &&
echo >>folder1/edited-content &&
git add . &&
git commit -m "rename deep/deeper1/... to folder1/..." &&
git checkout -b df-conflict-1 base &&
rm -rf folder1 &&
echo content >folder1 &&
git add . &&
git commit -m "dir to file" &&
git checkout -b df-conflict-2 base &&
rm -rf folder2 &&
echo content >folder2 &&
git add . &&
git commit -m "dir to file" &&
git checkout -b fd-conflict base &&
rm a &&
mkdir a &&
echo content >a/a &&
git add . &&
git commit -m "file to dir" &&
for side in left right
do
git checkout -b merge-$side base &&
echo $side >>deep/deeper2/a &&
echo $side >>folder1/a &&
echo $side >>folder2/a &&
git add . &&
git commit -m "$side" || return 1
done &&
git checkout -b deepest base &&
echo "updated deepest" >deep/deeper1/deepest/a &&
echo "updated deepest2" >deep/deeper1/deepest2/a &&
echo "updated deepest3" >deep/deeper1/deepest3/a &&
git commit -a -m "update deepest" &&
git checkout -f base &&
git reset --hard
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t1092-sparse-checkout-compatibility/initial-repo/.git/
[master (root-commit) 703fd3e] initial commit
Author: A U Thor <author@example.com>
33 files changed, 26 insertions(+)
create mode 100644 a
create mode 100644 before/a
create mode 100644 before/b
create mode 100644 deep/a
create mode 100644 deep/before/a
create mode 100644 deep/deeper1/0/0/0
create mode 100644 deep/deeper1/0/1
create mode 100644 deep/deeper1/a
create mode 100644 deep/deeper1/deepest/a
create mode 100644 deep/deeper1/deepest2/a
create mode 100644 deep/deeper1/deepest3/a
create mode 100644 deep/deeper1/e
create mode 100644 deep/deeper2/a
create mode 100644 deep/deeper2/deeper1/a
create mode 100644 deep/deeper2/deeper1/deepest/a
create mode 100644 deep/deeper2/deeper1/deepest2/a
create mode 100644 deep/deeper2/deeper1/deepest3/a
create mode 100644 deep/deeper2/deeper1/e
create mode 100644 deep/e
create mode 100644 deep/later/a
create mode 100644 e
create mode 100644 folder1-
create mode 100644 folder1.x
create mode 100644 folder1/0/0/0
create mode 100644 folder1/0/1
create mode 100644 folder1/a
create mode 100644 folder10
create mode 100644 folder2/0/0/0
create mode 100644 folder2/0/1
create mode 100644 folder2/a
create mode 100644 g
create mode 100644 x/a
create mode 100644 z
Switched to a new branch 'base'
Switched to a new branch 'update-folder1'
[update-folder1 fa14324] update folder1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to a new branch 'update-folder2'
[update-folder2 2805da4] update folder2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to a new branch 'update-deep'
[update-deep ac61adf] update deep
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to a new branch 'rename-base'
[rename-base 5914bd8] add interesting rename content
Author: A U Thor <author@example.com>
3 files changed, 15 insertions(+)
create mode 100644 deep/deeper1/larger-content
create mode 100644 folder1/larger-content
create mode 100644 folder2/larger-content
Switched to a new branch 'rename-out-to-out'
[rename-out-to-out 4a04e79] rename folder1/... to folder2/...
Author: A U Thor <author@example.com>
4 files changed, 3 insertions(+)
rename folder1/a => folder2/b (100%)
rename folder1/larger-content => folder2/edited-content (97%)
Switched to a new branch 'rename-out-to-in'
[rename-out-to-in d11c5fe] rename folder1/... to deep/deeper1/...
Author: A U Thor <author@example.com>
4 files changed, 2 insertions(+)
rename folder1/a => deep/deeper1/b (100%)
rename folder1/larger-content => deep/deeper1/edited-content (97%)
rename folder2/0/{ => 1}/1 (100%)
Switched to a new branch 'rename-in-to-out'
[rename-in-to-out e5d0f8e] rename deep/deeper1/... to folder1/...
Author: A U Thor <author@example.com>
4 files changed, 2 insertions(+)
rename folder1/0/{0 => }/0 (100%)
rename deep/deeper1/a => folder1/b (100%)
rename deep/deeper1/larger-content => folder1/edited-content (97%)
Switched to a new branch 'df-conflict-1'
[df-conflict-1 974b58d] dir to file
Author: A U Thor <author@example.com>
4 files changed, 1 insertion(+), 2 deletions(-)
create mode 100644 folder1
delete mode 100644 folder1/0/0/0
delete mode 100644 folder1/0/1
delete mode 100644 folder1/a
Switched to a new branch 'df-conflict-2'
[df-conflict-2 bef3412] dir to file
Author: A U Thor <author@example.com>
4 files changed, 1 insertion(+), 2 deletions(-)
create mode 100644 folder2
delete mode 100644 folder2/0/0/0
delete mode 100644 folder2/0/1
delete mode 100644 folder2/a
Switched to a new branch 'fd-conflict'
[fd-conflict 40c717f] file to dir
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 a
create mode 100644 a/a
Switched to a new branch 'merge-left'
[merge-left 9721a77] left
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
Switched to a new branch 'merge-right'
[merge-right 4f73b62] right
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
Switched to a new branch 'deepest'
[deepest cb037bf] update deepest
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+), 3 deletions(-)
Switched to branch 'base'
HEAD is now at 703fd3e initial commit
ok 1 - setup
expecting success of 1092.2 'sparse-index contents':
init_repos &&
# Remove deep, add three other directories.
test_sparse_checkout_set \
"folder1 folder2 x" \
"before deep" &&
# Remove folder1, add deep
test_sparse_checkout_set \
"deep folder2 x" \
"before folder1" &&
# Replace deep with deep/deeper2 (dropping deep/deeper1)
# Add folder1
test_sparse_checkout_set \
"deep/deeper2 folder1 folder2 x" \
"before deep/deeper1" &&
# Replace deep/deeper2 with deep/deeper1
# Replace folder1 with folder1/0/0
# Replace folder2 with non-existent folder2/2/3
# Add non-existent "bogus"
test_sparse_checkout_set \
"bogus deep/deeper1 folder1/0/0 folder2/2/3 x" \
"before deep/deeper2 folder2/0" &&
# Drop down to only files at root
test_sparse_checkout_set \
"" \
"before deep folder1 folder2 x" &&
# Disabling the sparse-index replaces tree entries with full ones
git -C sparse-index sparse-checkout init --no-sparse-index &&
test_sparse_match git ls-files --stage --sparse
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
040000 4499610892bdc57d5ebd35ebf695a57cd82ffe0e 0 before/
040000 ce536cb5137cec414526564049b9b175d835cde1 0 deep/
040000 4499610892bdc57d5ebd35ebf695a57cd82ffe0e 0 before/
040000 e0f2d30b633eb781d675fedd78808135103fe1a0 0 folder1/
040000 4499610892bdc57d5ebd35ebf695a57cd82ffe0e 0 before/
040000 10c8564bace86d48e22963bebe92e40ba8cfd937 0 deep/deeper1/
040000 4499610892bdc57d5ebd35ebf695a57cd82ffe0e 0 before/
040000 ca1fa788550e1b7b99256573687bd1dd7994e072 0 deep/deeper2/
040000 cb4007891397aa2a451037d1c69e57f0cf498c24 0 folder2/0/
fatal: path 'bogus' does not exist in 'HEAD'
fatal: path 'folder2/2/3' does not exist in 'HEAD'
040000 4499610892bdc57d5ebd35ebf695a57cd82ffe0e 0 before/
040000 ce536cb5137cec414526564049b9b175d835cde1 0 deep/
040000 e0f2d30b633eb781d675fedd78808135103fe1a0 0 folder1/
040000 123706f6fc38949628eaf0483edbf97ba21123ae 0 folder2/
040000 aaff74984cccd156a469afa7d9ab10e4777beb24 0 x/
ok 2 - sparse-index contents
expecting success of 1092.3 'expanded in-memory index matches full index':
init_repos &&
test_sparse_match git ls-files --stage
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 3 - expanded in-memory index matches full index
expecting success of 1092.4 'root directory cannot be sparse':
init_repos &&
# Remove all in-cone files and directories from the index, collapse index
# with `git sparse-checkout reapply`
git -C sparse-index rm -r . &&
git -C sparse-index sparse-checkout reapply &&
# Verify sparse directories still present, root directory is not sparse
cat >expect <<-EOF &&
before/
folder1/
folder2/
x/
EOF
git -C sparse-index ls-files --sparse >actual &&
test_cmp expect actual
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
rm 'a'
rm 'deep/a'
rm 'deep/before/a'
rm 'deep/deeper1/0/0/0'
rm 'deep/deeper1/0/1'
rm 'deep/deeper1/a'
rm 'deep/deeper1/deepest/a'
rm 'deep/deeper1/deepest2/a'
rm 'deep/deeper1/deepest3/a'
rm 'deep/deeper1/e'
rm 'deep/deeper2/a'
rm 'deep/deeper2/deeper1/a'
rm 'deep/deeper2/deeper1/deepest/a'
rm 'deep/deeper2/deeper1/deepest2/a'
rm 'deep/deeper2/deeper1/deepest3/a'
rm 'deep/deeper2/deeper1/e'
rm 'deep/e'
rm 'deep/later/a'
rm 'e'
rm 'folder1-'
rm 'folder1.x'
rm 'folder10'
rm 'g'
rm 'z'
ok 4 - root directory cannot be sparse
expecting success of 1092.5 'status with options':
init_repos &&
test_sparse_match ls &&
test_all_match git status --porcelain=v2 &&
test_all_match git status --porcelain=v2 -z -u &&
test_all_match git status --porcelain=v2 -uno &&
run_on_all touch README.md &&
test_all_match git status --porcelain=v2 &&
test_all_match git status --porcelain=v2 -z -u &&
test_all_match git status --porcelain=v2 -uno &&
test_all_match git add README.md &&
test_all_match git status --porcelain=v2 &&
test_all_match git status --porcelain=v2 -z -u &&
test_all_match git status --porcelain=v2 -uno
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 5 - status with options
expecting success of 1092.6 'status with diff in unexpanded sparse directory':
init_repos &&
test_all_match git checkout rename-base &&
test_all_match git reset --soft rename-out-to-out &&
test_all_match git status --porcelain=v2
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 6 - status with diff in unexpanded sparse directory
expecting success of 1092.7 'status reports sparse-checkout':
init_repos &&
git -C sparse-checkout status >full &&
git -C sparse-index status >sparse &&
test_i18ngrep "You are in a sparse checkout with " full &&
test_i18ngrep "You are in a sparse checkout." sparse
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
You are in a sparse checkout with 73% of tracked files present.
You are in a sparse checkout.
ok 7 - status reports sparse-checkout
expecting success of 1092.8 'add, commit, checkout':
init_repos &&
write_script edit-contents <<-\EOF &&
echo text >>$1
EOF
run_on_all ../edit-contents README.md &&
test_all_match git add README.md &&
test_all_match git status --porcelain=v2 &&
test_all_match git commit -m "Add README.md" &&
test_all_match git checkout HEAD~1 &&
test_all_match git checkout - &&
run_on_all ../edit-contents README.md &&
test_all_match git add -A &&
test_all_match git status --porcelain=v2 &&
test_all_match git commit -m "Extend README.md" &&
test_all_match git checkout HEAD~1 &&
test_all_match git checkout - &&
run_on_all ../edit-contents deep/newfile &&
test_all_match git status --porcelain=v2 -uno &&
test_all_match git status --porcelain=v2 &&
test_all_match git add . &&
test_all_match git status --porcelain=v2 &&
test_all_match git commit -m "add deep/newfile" &&
test_all_match git checkout HEAD~1 &&
test_all_match git checkout -
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 8 - add, commit, checkout
expecting success of 1092.9 'deep changes during checkout':
init_repos &&
test_sparse_match git sparse-checkout set deep/deeper1/deepest &&
test_all_match git checkout deepest &&
test_all_match git checkout base
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 9 - deep changes during checkout
expecting success of 1092.10 'checkout with modified sparse directory':
init_repos &&
test_all_match git checkout rename-in-to-out -- . &&
test_sparse_match git sparse-checkout reapply &&
test_all_match git checkout base
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 10 - checkout with modified sparse directory
expecting success of 1092.11 'checkout orphan then non-orphan':
init_repos &&
test_all_match git checkout --orphan test-orphan &&
test_all_match git status --porcelain=v2 &&
test_all_match git checkout base &&
test_all_match git status --porcelain=v2
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 11 - checkout orphan then non-orphan
expecting success of 1092.12 'add outside sparse cone':
init_repos &&
run_on_sparse mkdir folder1 &&
run_on_sparse ../edit-contents folder1/a &&
run_on_sparse ../edit-contents folder1/newfile &&
test_sparse_match test_must_fail git add folder1/a &&
grep "Disable or modify the sparsity rules" sparse-checkout-err &&
test_sparse_unstaged folder1/a &&
test_sparse_match test_must_fail git add folder1/newfile &&
grep "Disable or modify the sparsity rules" sparse-checkout-err &&
test_sparse_unstaged folder1/newfile
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
hint: * Disable or modify the sparsity rules.
hint: * Disable or modify the sparsity rules.
ok 12 - add outside sparse cone
expecting success of 1092.13 'commit including unstaged changes':
init_repos &&
write_script edit-file <<-\EOF &&
echo $1 >$2
EOF
run_on_all ../edit-file 1 a &&
run_on_all ../edit-file 1 deep/a &&
test_all_match git commit -m "-a" -a &&
test_all_match git status --porcelain=v2 &&
run_on_all ../edit-file 2 a &&
run_on_all ../edit-file 2 deep/a &&
test_all_match git commit -m "--include" --include deep/a &&
test_all_match git status --porcelain=v2 &&
test_all_match git commit -m "--include" --include a &&
test_all_match git status --porcelain=v2 &&
run_on_all ../edit-file 3 a &&
run_on_all ../edit-file 3 deep/a &&
test_all_match git commit -m "--amend" -a --amend &&
test_all_match git status --porcelain=v2
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 13 - commit including unstaged changes
expecting success of 1092.14 'status/add: outside sparse cone':
init_repos &&
# folder1 is at HEAD, but outside the sparse cone
run_on_sparse mkdir folder1 &&
cp initial-repo/folder1/a sparse-checkout/folder1/a &&
cp initial-repo/folder1/a sparse-index/folder1/a &&
test_sparse_match git status &&
write_script edit-contents <<-\EOF &&
echo text >>$1
EOF
run_on_all ../edit-contents folder1/a &&
run_on_all ../edit-contents folder1/new &&
test_sparse_match git status --porcelain=v2 &&
# Adding the path outside of the sparse-checkout cone should fail.
test_sparse_match test_must_fail git add folder1/a &&
grep "Disable or modify the sparsity rules" sparse-checkout-err &&
test_sparse_unstaged folder1/a &&
test_all_match git add --refresh folder1/a &&
test_must_be_empty sparse-checkout-err &&
test_sparse_unstaged folder1/a &&
test_sparse_match test_must_fail git add folder1/new &&
grep "Disable or modify the sparsity rules" sparse-checkout-err &&
test_sparse_unstaged folder1/new &&
test_sparse_match git add --sparse folder1/a &&
test_sparse_match git add --sparse folder1/new &&
test_all_match git add --sparse . &&
test_all_match git status --porcelain=v2 &&
test_all_match git commit -m folder1/new &&
test_all_match git rev-parse HEAD^{tree} &&
run_on_all ../edit-contents folder1/newer &&
test_all_match git add --sparse folder1/ &&
test_all_match git status --porcelain=v2 &&
test_all_match git commit -m folder1/newer &&
test_all_match git rev-parse HEAD^{tree}
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
hint: * Disable or modify the sparsity rules.
hint: * Disable or modify the sparsity rules.
ok 14 - status/add: outside sparse cone
expecting success of 1092.15 'checkout and reset --hard':
init_repos &&
test_all_match git checkout update-folder1 &&
test_all_match git status --porcelain=v2 &&
test_all_match git checkout update-deep &&
test_all_match git status --porcelain=v2 &&
test_all_match git checkout -b reset-test &&
test_all_match git reset --hard deepest &&
test_all_match git reset --hard update-folder1 &&
test_all_match git reset --hard update-folder2
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 15 - checkout and reset --hard
expecting success of 1092.16 'diff --cached':
init_repos &&
write_script edit-contents <<-\EOF &&
echo text >>README.md
EOF
run_on_all ../edit-contents &&
test_all_match git diff &&
test_all_match git diff --cached &&
test_all_match git add README.md &&
test_all_match git diff &&
test_all_match git diff --cached
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 16 - diff --cached
expecting success of 1092.17 'diff with renames and conflicts':
init_repos &&
for branch in rename-out-to-out \
rename-out-to-in \
rename-in-to-out \
df-conflict-1 \
fd-conflict
do
test_all_match git checkout rename-base &&
test_all_match git checkout $branch -- . &&
test_all_match git status --porcelain=v2 &&
test_all_match git diff --cached --no-renames &&
test_all_match git diff --cached --find-renames || return 1
done
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 17 - diff with renames and conflicts
expecting success of 1092.18 'diff with directory/file conflicts':
init_repos &&
for branch in rename-out-to-out \
rename-out-to-in \
rename-in-to-out \
df-conflict-1 \
df-conflict-2 \
fd-conflict
do
git -C full-checkout reset --hard &&
test_sparse_match git reset --hard &&
test_all_match git checkout $branch &&
test_all_match git checkout rename-base -- . &&
test_all_match git status --porcelain=v2 &&
test_all_match git diff --cached --no-renames &&
test_all_match git diff --cached --find-renames || return 1
done
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 4a04e79 rename folder1/... to folder2/...
HEAD is now at d11c5fe rename folder1/... to deep/deeper1/...
HEAD is now at e5d0f8e rename deep/deeper1/... to folder1/...
HEAD is now at 974b58d dir to file
HEAD is now at bef3412 dir to file
ok 18 - diff with directory/file conflicts
expecting success of 1092.19 'log with pathspec outside sparse definition':
init_repos &&
test_all_match git log -- a &&
test_all_match git log -- folder1/a &&
test_all_match git log -- folder2/a &&
test_all_match git log -- deep/a &&
test_all_match git log -- deep/deeper1/a &&
test_all_match git log -- deep/deeper1/deepest/a &&
test_all_match git checkout update-folder1 &&
test_all_match git log -- folder1/a
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 19 - log with pathspec outside sparse definition
expecting success of 1092.20 'blame with pathspec inside sparse definition':
init_repos &&
for file in a \
deep/a \
deep/deeper1/a \
deep/deeper1/deepest/a
do
test_all_match git blame $file || return 1
done
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 20 - blame with pathspec inside sparse definition
expecting success of 1092.21 'blame with pathspec outside sparse definition':
init_repos &&
test_sparse_match git sparse-checkout set &&
for file in \
deep/a \
deep/deeper1/a \
deep/deeper1/deepest/a
do
test_sparse_match test_must_fail git blame $file &&
cat >expect <<-EOF &&
fatal: Cannot lstat '$file': No such file or directory
EOF
# We compare sparse-checkout-err and sparse-index-err in
# `test_sparse_match`. Given we know they are the same, we
# only check the content of sparse-index-err here.
test_cmp expect sparse-index-err || return 1
done
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 21 - blame with pathspec outside sparse definition
expecting success of 1092.22 'checkout and reset (mixed)':
init_repos &&
test_all_match git checkout -b reset-test update-deep &&
test_all_match git reset deepest &&
# Because skip-worktree is preserved, resetting to update-folder1
# will show worktree changes for folder1/a in full-checkout, but not
# in sparse-checkout or sparse-index.
git -C full-checkout reset update-folder1 >full-checkout-out &&
test_sparse_match git reset update-folder1 &&
grep "M folder1/a" full-checkout-out &&
! grep "M folder1/a" sparse-checkout-out &&
run_on_sparse test_path_is_missing folder1
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
M folder1/a
ok 22 - checkout and reset (mixed)
expecting success of 1092.23 'checkout and reset (merge)':
init_repos &&
write_script edit-contents <<-\EOF &&
echo text >>$1
EOF
test_all_match git checkout -b reset-test update-deep &&
run_on_all ../edit-contents a &&
test_all_match git reset --merge deepest &&
test_all_match git status --porcelain=v2 &&
test_all_match git reset --hard update-deep &&
run_on_all ../edit-contents deep/a &&
test_all_match test_must_fail git reset --merge deepest
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 23 - checkout and reset (merge)
expecting success of 1092.24 'checkout and reset (keep)':
init_repos &&
write_script edit-contents <<-\EOF &&
echo text >>$1
EOF
test_all_match git checkout -b reset-test update-deep &&
run_on_all ../edit-contents a &&
test_all_match git reset --keep deepest &&
test_all_match git status --porcelain=v2 &&
test_all_match git reset --hard update-deep &&
run_on_all ../edit-contents deep/a &&
test_all_match test_must_fail git reset --keep deepest
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 24 - checkout and reset (keep)
expecting success of 1092.25 'reset with pathspecs inside sparse definition':
init_repos &&
write_script edit-contents <<-\EOF &&
echo text >>$1
EOF
test_all_match git checkout -b reset-test update-deep &&
run_on_all ../edit-contents deep/a &&
test_all_match git reset base -- deep/a &&
test_all_match git status --porcelain=v2 &&
test_all_match git reset base -- nonexistent-file &&
test_all_match git status --porcelain=v2 &&
test_all_match git reset deepest -- deep &&
test_all_match git status --porcelain=v2
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 25 - reset with pathspecs inside sparse definition
expecting success of 1092.26 'reset with pathspecs outside sparse definition':
init_repos &&
test_all_match git checkout -b reset-test base &&
test_sparse_match git reset update-folder1 -- folder1 &&
git -C full-checkout reset update-folder1 -- folder1 &&
test_all_match git ls-files -s -- folder1 &&
test_sparse_match git reset update-folder2 -- folder2/a &&
git -C full-checkout reset update-folder2 -- folder2/a &&
test_all_match git ls-files -s -- folder2/a
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
Unstaged changes after reset:
M folder1/a
Unstaged changes after reset:
M folder1/a
M folder2/a
ok 26 - reset with pathspecs outside sparse definition
expecting success of 1092.27 'reset with wildcard pathspec':
init_repos &&
test_all_match git reset update-deep -- deep\* &&
test_all_match git ls-files -s -- deep &&
test_all_match git reset deepest -- deep\*\*\* &&
test_all_match git ls-files -s -- deep &&
# The following `git reset`s result in updating the index on files with
# `skip-worktree` enabled. To avoid failing due to discrepencies in reported
# "modified" files, `test_sparse_match` reset is performed separately from
# "full-checkout" reset, then the index contents of all repos are verified.
test_sparse_match git reset update-folder1 -- \*/a &&
git -C full-checkout reset update-folder1 -- \*/a &&
test_all_match git ls-files -s -- deep/a folder1/a &&
test_sparse_match git reset update-folder2 -- folder\* &&
git -C full-checkout reset update-folder2 -- folder\* &&
test_all_match git ls-files -s -- folder10 folder1 folder2 &&
test_sparse_match git reset base -- folder1/\* &&
git -C full-checkout reset base -- folder1/\* &&
test_all_match git ls-files -s -- folder1
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
Unstaged changes after reset:
M folder1/a
Unstaged changes after reset:
M folder2/a
Unstaged changes after reset:
M folder2/a
ok 27 - reset with wildcard pathspec
expecting success of 1092.28 'reset hard with removed sparse dir':
init_repos &&
run_on_all git rm -r --sparse folder1 &&
test_all_match git status --porcelain=v2 &&
test_all_match git reset --hard &&
test_all_match git status --porcelain=v2 &&
cat >expect <<-\EOF &&
folder1/
EOF
git -C sparse-index ls-files --sparse folder1 >out &&
test_cmp expect out
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 28 - reset hard with removed sparse dir
expecting success of 1092.29 'update-index modify outside sparse definition':
init_repos &&
write_script edit-contents <<-\EOF &&
echo text >>$1
EOF
# Create & modify folder1/a
# Note that this setup is a manual way of reaching the erroneous
# condition in which a `skip-worktree` enabled, outside-of-cone file
# exists on disk. It is used here to ensure `update-index` is stable
# and behaves predictably if such a condition occurs.
run_on_sparse mkdir -p folder1 &&
run_on_sparse cp ../initial-repo/folder1/a folder1/a &&
run_on_all ../edit-contents folder1/a &&
# If file has skip-worktree enabled, but the file is present, it is
# treated the same as if skip-worktree is disabled
test_all_match git status --porcelain=v2 &&
test_all_match git update-index folder1/a &&
test_all_match git status --porcelain=v2 &&
# When skip-worktree is disabled (even on files outside sparse cone), file
# is updated in the index
test_sparse_match git update-index --no-skip-worktree folder1/a &&
test_all_match git status --porcelain=v2 &&
test_all_match git update-index folder1/a &&
test_all_match git status --porcelain=v2
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 29 - update-index modify outside sparse definition
expecting success of 1092.30 'update-index --add outside sparse definition':
init_repos &&
write_script edit-contents <<-\EOF &&
echo text >>$1
EOF
# Create folder1, add new file
run_on_sparse mkdir -p folder1 &&
run_on_all ../edit-contents folder1/b &&
# The *untracked* out-of-cone file is added to the index because it does
# not have a `skip-worktree` bit to signal that it should be ignored
# (unlike in `git add`, which will fail due to the file being outside
# the sparse checkout definition).
test_all_match git update-index --add folder1/b &&
test_all_match git status --porcelain=v2
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 30 - update-index --add outside sparse definition
expecting success of 1092.31 'update-index --remove outside sparse definition':
init_repos &&
# When --ignore-skip-worktree-entries is _not_ specified:
# out-of-cone, not-on-disk files are removed from the index
test_sparse_match git update-index --remove folder1/a &&
cat >expect <<-EOF &&
D folder1/a
EOF
test_sparse_match git diff --cached --name-status &&
test_cmp expect sparse-checkout-out &&
# Reset the state
test_all_match git reset --hard &&
# When --ignore-skip-worktree-entries is specified, out-of-cone
# (skip-worktree) files are ignored
test_sparse_match git update-index --remove --ignore-skip-worktree-entries folder1/a &&
test_sparse_match git diff --cached --name-status &&
test_must_be_empty sparse-checkout-out &&
# Reset the state
test_all_match git reset --hard &&
# --force-remove supercedes --ignore-skip-worktree-entries, removing
# a skip-worktree file from the index (and disk) when both are specified
# with --remove
test_sparse_match git update-index --force-remove --ignore-skip-worktree-entries folder1/a &&
cat >expect <<-EOF &&
D folder1/a
EOF
test_sparse_match git diff --cached --name-status &&
test_cmp expect sparse-checkout-out
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 31 - update-index --remove outside sparse definition
expecting success of 1092.32 'update-index with directories':
init_repos &&
# update-index will exit silently when provided with a directory name
# containing a trailing slash
test_all_match git update-index deep/ folder1/ &&
grep "Ignoring path deep/" sparse-checkout-err &&
grep "Ignoring path folder1/" sparse-checkout-err &&
# When update-index is given a directory name WITHOUT a trailing slash, it will
# behave in different ways depending on the status of the directory on disk:
# * if it exists, the command exits with an error ("add individual files instead")
# * if it does NOT exist (e.g., in a sparse-checkout), it is assumed to be a
# file and either triggers an error ("does not exist and --remove not passed")
# or is ignored completely (when using --remove)
test_all_match test_must_fail git update-index deep &&
run_on_all test_must_fail git update-index folder1 &&
test_must_fail git -C full-checkout update-index --remove folder1 &&
test_sparse_match git update-index --remove folder1 &&
test_all_match git status --porcelain=v2
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
Ignoring path deep/
Ignoring path folder1/
error: folder1: is a directory - add individual files instead
fatal: Unable to process path folder1
ok 32 - update-index with directories
expecting success of 1092.33 'update-index --again file outside sparse definition':
init_repos &&
test_all_match git checkout -b test-reupdate &&
# Update HEAD without modifying the index to introduce a difference in
# folder1/a
test_sparse_match git reset --soft update-folder1 &&
# Because folder1/a differs in the index vs HEAD,
# `git update-index --no-skip-worktree --again` will effectively perform
# `git update-index --no-skip-worktree folder1/a` and remove the skip-worktree
# flag from folder1/a
test_sparse_match git update-index --no-skip-worktree --again &&
test_sparse_match git status --porcelain=v2 &&
cat >expect <<-EOF &&
D folder1/a
EOF
test_sparse_match git diff --name-status &&
test_cmp expect sparse-checkout-out
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 33 - update-index --again file outside sparse definition
expecting success of 1092.34 'update-index --cacheinfo':
init_repos &&
deep_a_oid=$(git -C full-checkout rev-parse update-deep:deep/a) &&
folder2_oid=$(git -C full-checkout rev-parse update-folder2:folder2) &&
folder1_a_oid=$(git -C full-checkout rev-parse update-folder1:folder1/a) &&
test_all_match git update-index --cacheinfo 100644 $deep_a_oid deep/a &&
test_all_match git status --porcelain=v2 &&
# Cannot add sparse directory, even in sparse index case
test_all_match test_must_fail git update-index --add --cacheinfo 040000 $folder2_oid folder2/ &&
# Sparse match only: the new outside-of-cone entry is added *without* skip-worktree,
# so `git status` reports it as "deleted" in the worktree
test_sparse_match git update-index --add --cacheinfo 100644 $folder1_a_oid folder1/a &&
test_sparse_match git status --porcelain=v2 &&
cat >expect <<-EOF &&
MD folder1/a
EOF
test_sparse_match git status --short -- folder1/a &&
test_cmp expect sparse-checkout-out &&
# To return folder1/a to "normal" for a sparse checkout (ignored &
# outside-of-cone), add the skip-worktree flag.
test_sparse_match git update-index --skip-worktree folder1/a &&
cat >expect <<-EOF &&
S folder1/a
EOF
test_sparse_match git ls-files -t -- folder1/a &&
test_cmp expect sparse-checkout-out
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 34 - update-index --cacheinfo
expecting success of 1092.35 ''read-tree -mu base HEAD update-folder2' with files outside sparse definition':
init_repos &&
# Although the index matches, without --no-sparse-checkout, outside-of-
# definition files will not exist on disk for sparse checkouts
test_all_match git read-tree -mu $MERGE_TREES &&
test_all_match git status --porcelain=v2 &&
test_path_is_missing sparse-checkout/folder2 &&
test_path_is_missing sparse-index/folder2 &&
test_all_match git read-tree --reset -u HEAD &&
test_all_match git status --porcelain=v2 &&
test_all_match git read-tree -mu --no-sparse-checkout $MERGE_TREES &&
test_all_match git status --porcelain=v2 &&
test_cmp sparse-checkout/folder2/a sparse-index/folder2/a &&
test_cmp sparse-checkout/folder2/a full-checkout/folder2/a
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 35 - 'read-tree -mu base HEAD update-folder2' with files outside sparse definition
expecting success of 1092.36 ''read-tree -mu update-folder1 update-folder2' with files outside sparse definition':
init_repos &&
# Although the index matches, without --no-sparse-checkout, outside-of-
# definition files will not exist on disk for sparse checkouts
test_all_match git read-tree -mu $MERGE_TREES &&
test_all_match git status --porcelain=v2 &&
test_path_is_missing sparse-checkout/folder2 &&
test_path_is_missing sparse-index/folder2 &&
test_all_match git read-tree --reset -u HEAD &&
test_all_match git status --porcelain=v2 &&
test_all_match git read-tree -mu --no-sparse-checkout $MERGE_TREES &&
test_all_match git status --porcelain=v2 &&
test_cmp sparse-checkout/folder2/a sparse-index/folder2/a &&
test_cmp sparse-checkout/folder2/a full-checkout/folder2/a
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 36 - 'read-tree -mu update-folder1 update-folder2' with files outside sparse definition
expecting success of 1092.37 ''read-tree -mu update-folder2' with files outside sparse definition':
init_repos &&
# Although the index matches, without --no-sparse-checkout, outside-of-
# definition files will not exist on disk for sparse checkouts
test_all_match git read-tree -mu $MERGE_TREES &&
test_all_match git status --porcelain=v2 &&
test_path_is_missing sparse-checkout/folder2 &&
test_path_is_missing sparse-index/folder2 &&
test_all_match git read-tree --reset -u HEAD &&
test_all_match git status --porcelain=v2 &&
test_all_match git read-tree -mu --no-sparse-checkout $MERGE_TREES &&
test_all_match git status --porcelain=v2 &&
test_cmp sparse-checkout/folder2/a sparse-index/folder2/a &&
test_cmp sparse-checkout/folder2/a full-checkout/folder2/a
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 37 - 'read-tree -mu update-folder2' with files outside sparse definition
expecting success of 1092.38 'read-tree --merge with edit/edit conflicts in sparse directories':
init_repos &&
# Merge of multiple changes to same directory (but not same files) should
# succeed
test_all_match git read-tree -mu base rename-base update-folder1 &&
test_all_match git status --porcelain=v2 &&
test_all_match git reset --hard &&
test_all_match git read-tree -mu rename-base update-folder2 &&
test_all_match git status --porcelain=v2 &&
test_all_match git reset --hard &&
test_all_match test_must_fail git read-tree -mu base update-folder1 rename-out-to-in &&
test_all_match test_must_fail git read-tree -mu rename-out-to-in update-folder1
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 38 - read-tree --merge with edit/edit conflicts in sparse directories
expecting success of 1092.39 'read-tree --prefix':
init_repos &&
# If files differing between the index and target <commit-ish> exist
# inside the prefix, `read-tree --prefix` should fail
test_all_match test_must_fail git read-tree --prefix=deep/ deepest &&
test_all_match test_must_fail git read-tree --prefix=folder1/ update-folder1 &&
# If no differing index entries exist matching the prefix,
# `read-tree --prefix` updates the index successfully
test_all_match git rm -rf deep/deeper1/deepest/ &&
test_all_match git read-tree --prefix=deep/deeper1/deepest -u deepest &&
test_all_match git status --porcelain=v2 &&
run_on_all git rm -rf --sparse folder1/ &&
test_all_match git read-tree --prefix=folder1/ -u update-folder1 &&
test_all_match git status --porcelain=v2 &&
test_all_match git rm -rf --sparse folder2/0 &&
test_all_match git read-tree --prefix=folder2/0/ -u rename-out-to-out &&
test_all_match git status --porcelain=v2
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 39 - read-tree --prefix
expecting success of 1092.40 'read-tree --merge with directory-file conflicts':
init_repos &&
test_all_match git checkout -b test-branch rename-base &&
# Although the index matches, without --no-sparse-checkout, outside-of-
# definition files will not exist on disk for sparse checkouts
test_sparse_match git read-tree -mu rename-out-to-out &&
test_sparse_match git status --porcelain=v2 &&
test_path_is_missing sparse-checkout/folder2 &&
test_path_is_missing sparse-index/folder2 &&
test_sparse_match git read-tree --reset -u HEAD &&
test_sparse_match git status --porcelain=v2 &&
test_sparse_match git read-tree -mu --no-sparse-checkout rename-out-to-out &&
test_sparse_match git status --porcelain=v2 &&
test_cmp sparse-checkout/folder2/0/1 sparse-index/folder2/0/1
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 40 - read-tree --merge with directory-file conflicts
expecting success of 1092.41 'merge, cherry-pick, and rebase':
init_repos &&
for OPERATION in "merge -m merge" cherry-pick "rebase --apply" "rebase --merge"
do
test_all_match git checkout -B temp update-deep &&
test_all_match git $OPERATION update-folder1 &&
test_all_match git rev-parse HEAD^{tree} &&
test_all_match git $OPERATION update-folder2 &&
test_all_match git rev-parse HEAD^{tree} || return 1
done
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 41 - merge, cherry-pick, and rebase
expecting success of 1092.42 'merge with conflict outside cone':
init_repos &&
test_all_match git checkout -b merge-tip merge-left &&
test_all_match git status --porcelain=v2 &&
test_all_match test_must_fail git merge -m merge merge-right &&
test_all_match git status --porcelain=v2 &&
# Resolve the conflict in different ways:
# 1. Revert to the base
test_all_match git checkout base -- deep/deeper2/a &&
test_all_match git status --porcelain=v2 &&
# 2. Add the file with conflict markers
test_sparse_match test_must_fail git add folder1/a &&
grep "Disable or modify the sparsity rules" sparse-checkout-err &&
test_sparse_unstaged folder1/a &&
test_all_match git add --sparse folder1/a &&
test_all_match git status --porcelain=v2 &&
# 3. Rename the file to another sparse filename and
# accept conflict markers as resolved content.
run_on_all mv folder2/a folder2/z &&
test_sparse_match test_must_fail git add folder2 &&
grep "Disable or modify the sparsity rules" sparse-checkout-err &&
test_sparse_unstaged folder2/z &&
test_all_match git add --sparse folder2 &&
test_all_match git status --porcelain=v2 &&
test_all_match git merge --continue &&
test_all_match git status --porcelain=v2 &&
test_all_match git rev-parse HEAD^{tree}
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
hint: * Disable or modify the sparsity rules.
hint: * Disable or modify the sparsity rules.
ok 42 - merge with conflict outside cone
expecting success of 1092.43 'cherry-pick/rebase with conflict outside cone':
init_repos &&
for OPERATION in cherry-pick rebase
do
test_all_match git checkout -B tip &&
test_all_match git reset --hard merge-left &&
test_all_match git status --porcelain=v2 &&
test_all_match test_must_fail git $OPERATION merge-right &&
test_all_match git status --porcelain=v2 &&
# Resolve the conflict in different ways:
# 1. Revert to the base
test_all_match git checkout base -- deep/deeper2/a &&
test_all_match git status --porcelain=v2 &&
# 2. Add the file with conflict markers
# NEEDSWORK: Even though the merge conflict removed the
# SKIP_WORKTREE bit from the index entry for folder1/a, we should
# warn that this is a problematic add.
test_sparse_match test_must_fail git add folder1/a &&
grep "Disable or modify the sparsity rules" sparse-checkout-err &&
test_sparse_unstaged folder1/a &&
test_all_match git add --sparse folder1/a &&
test_all_match git status --porcelain=v2 &&
# 3. Rename the file to another sparse filename and
# accept conflict markers as resolved content.
# NEEDSWORK: This mode now fails, because folder2/z is
# outside of the sparse-checkout cone and does not match an
# existing index entry with the SKIP_WORKTREE bit cleared.
run_on_all mv folder2/a folder2/z &&
test_sparse_match test_must_fail git add folder2 &&
grep "Disable or modify the sparsity rules" sparse-checkout-err &&
test_sparse_unstaged folder2/z &&
test_all_match git add --sparse folder2 &&
test_all_match git status --porcelain=v2 &&
test_all_match git $OPERATION --continue &&
test_all_match git status --porcelain=v2 &&
test_all_match git rev-parse HEAD^{tree} || return 1
done
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
hint: * Disable or modify the sparsity rules.
hint: * Disable or modify the sparsity rules.
hint: * Disable or modify the sparsity rules.
hint: * Disable or modify the sparsity rules.
ok 43 - cherry-pick/rebase with conflict outside cone
expecting success of 1092.44 'merge with outside renames':
init_repos &&
for type in out-to-out out-to-in in-to-out
do
test_all_match git reset --hard &&
test_all_match git checkout -f -b merge-$type update-deep &&
test_all_match git merge -m "$type" rename-$type &&
test_all_match git rev-parse HEAD^{tree} || return 1
done
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 44 - merge with outside renames
expecting success of 1092.45 'cherry-pick with conflicts':
init_repos &&
write_script edit-conflict <<-\EOF &&
echo $1 >conflict
EOF
test_all_match git checkout -b to-cherry-pick &&
run_on_all ../edit-conflict ABC &&
test_all_match git add conflict &&
test_all_match git commit -m "conflict to pick" &&
test_all_match git checkout -B base HEAD~1 &&
run_on_all ../edit-conflict DEF &&
test_all_match git add conflict &&
test_all_match git commit -m "conflict in base" &&
test_all_match test_must_fail git cherry-pick to-cherry-pick
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 45 - cherry-pick with conflicts
expecting success of 1092.46 'stash':
init_repos &&
write_script edit-contents <<-\EOF &&
echo text >>$1
EOF
# Stash a sparse directory (folder1)
test_all_match git checkout -b test-branch rename-base &&
test_all_match git reset --soft rename-out-to-out &&
test_all_match git stash &&
test_all_match git status --porcelain=v2 &&
# Apply the sparse directory stash without reinstating the index
test_all_match git stash apply -q &&
test_all_match git status --porcelain=v2 &&
# Reset to state where stash can be applied
test_sparse_match git sparse-checkout reapply &&
test_all_match git reset --hard rename-out-to-out &&
# Apply the sparse directory stash *with* reinstating the index
test_all_match git stash apply --index -q &&
test_all_match git status --porcelain=v2 &&
# Reset to state where we will get a conflict applying the stash
test_sparse_match git sparse-checkout reapply &&
test_all_match git reset --hard update-folder1 &&
# Apply the sparse directory stash with conflicts
test_all_match test_must_fail git stash apply --index -q &&
test_all_match test_must_fail git stash apply -q &&
test_all_match git status --porcelain=v2 &&
# Reset to base branch
test_sparse_match git sparse-checkout reapply &&
test_all_match git reset --hard base &&
# Stash & unstash an untracked file outside of the sparse checkout
# definition.
run_on_sparse mkdir -p folder1 &&
run_on_all ../edit-contents folder1/new &&
test_all_match git stash -u &&
test_all_match git status --porcelain=v2 &&
test_all_match git stash pop -q &&
test_all_match git status --porcelain=v2
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 46 - stash
expecting success of 1092.47 'checkout-index inside sparse definition':
init_repos &&
run_on_all rm -f deep/a &&
test_all_match git checkout-index -- deep/a &&
test_all_match git status --porcelain=v2 &&
echo test >>new-a &&
run_on_all cp ../new-a a &&
test_all_match test_must_fail git checkout-index -- a &&
test_all_match git checkout-index -f -- a &&
test_all_match git status --porcelain=v2
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 47 - checkout-index inside sparse definition
expecting success of 1092.48 'checkout-index outside sparse definition':
init_repos &&
# Without --ignore-skip-worktree-bits, outside-of-cone files will trigger
# an error
test_sparse_match test_must_fail git checkout-index -- folder1/a &&
test_i18ngrep "folder1/a has skip-worktree enabled" sparse-checkout-err &&
test_path_is_missing folder1/a &&
# With --ignore-skip-worktree-bits, outside-of-cone files are checked out
test_sparse_match git checkout-index --ignore-skip-worktree-bits -- folder1/a &&
test_cmp sparse-checkout/folder1/a sparse-index/folder1/a &&
test_cmp sparse-checkout/folder1/a full-checkout/folder1/a &&
run_on_sparse rm -rf folder1 &&
echo test >new-a &&
run_on_sparse mkdir -p folder1 &&
run_on_all cp ../new-a folder1/a &&
test_all_match test_must_fail git checkout-index --ignore-skip-worktree-bits -- folder1/a &&
test_all_match git checkout-index -f --ignore-skip-worktree-bits -- folder1/a &&
test_cmp sparse-checkout/folder1/a sparse-index/folder1/a &&
test_cmp sparse-checkout/folder1/a full-checkout/folder1/a
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
git checkout-index: folder1/a has skip-worktree enabled; use '--ignore-skip-worktree-bits' to checkout
ok 48 - checkout-index outside sparse definition
expecting success of 1092.49 'checkout-index with folders':
init_repos &&
# Inside checkout definition
test_all_match test_must_fail git checkout-index -f -- deep/ &&
# Outside checkout definition
# Note: although all tests fail (as expected), the messaging differs. For
# non-sparse index checkouts, the error is that the "file" does not appear
# in the index; for sparse checkouts, the error is explicitly that the
# entry is a sparse directory.
run_on_all test_must_fail git checkout-index -f -- folder1/ &&
test_cmp full-checkout-err sparse-checkout-err &&
! test_cmp full-checkout-err sparse-index-err &&
grep "is a sparse directory" sparse-index-err
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
--- full-checkout-err 2023-09-16 19:12:04.248319866 +0000
+++ sparse-index-err 2023-09-16 19:12:04.268320111 +0000
@@ -1 +1 @@
-git checkout-index: folder1/ is not in the cache
+git checkout-index: folder1/ is a sparse directory
git checkout-index: folder1/ is a sparse directory
ok 49 - checkout-index with folders
expecting success of 1092.50 'checkout-index --all':
init_repos &&
test_all_match git checkout-index --all &&
test_sparse_match test_path_is_missing folder1 &&
# --ignore-skip-worktree-bits will cause `skip-worktree` files to be
# checked out, causing the outside-of-cone `folder1` to exist on-disk
test_all_match git checkout-index --ignore-skip-worktree-bits --all &&
test_all_match test_path_exists folder1
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 50 - checkout-index --all
expecting success of 1092.51 'clean':
init_repos &&
echo bogus >>.gitignore &&
run_on_all cp ../.gitignore . &&
test_all_match git add .gitignore &&
test_all_match git commit -m "ignore bogus files" &&
run_on_sparse mkdir folder1 &&
run_on_all mkdir -p deep/untracked-deep &&
run_on_all touch folder1/bogus &&
run_on_all touch folder1/untracked &&
run_on_all touch deep/untracked-deep/bogus &&
run_on_all touch deep/untracked-deep/untracked &&
test_all_match git status --porcelain=v2 &&
test_all_match git clean -f &&
test_all_match git status --porcelain=v2 &&
test_sparse_match ls &&
test_sparse_match ls folder1 &&
run_on_all test_path_exists folder1/bogus &&
run_on_all test_path_is_missing folder1/untracked &&
run_on_all test_path_exists deep/untracked-deep/bogus &&
run_on_all test_path_exists deep/untracked-deep/untracked &&
test_all_match git clean -fd &&
test_all_match git status --porcelain=v2 &&
test_sparse_match ls &&
test_sparse_match ls folder1 &&
run_on_all test_path_exists folder1/bogus &&
run_on_all test_path_exists deep/untracked-deep/bogus &&
run_on_all test_path_is_missing deep/untracked-deep/untracked &&
test_all_match git clean -xf &&
test_all_match git status --porcelain=v2 &&
test_sparse_match ls &&
test_sparse_match ls folder1 &&
run_on_all test_path_is_missing folder1/bogus &&
run_on_all test_path_exists deep/untracked-deep/bogus &&
test_all_match git clean -xdf &&
test_all_match git status --porcelain=v2 &&
test_sparse_match ls &&
test_sparse_match ls folder1 &&
run_on_all test_path_is_missing deep/untracked-deep/bogus &&
test_sparse_match test_path_is_dir folder1
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 51 - clean
expecting success of 1092.52 'show (cached blobs/trees)':
init_repos &&
test_all_match git show :a &&
test_all_match git show :deep/a &&
test_sparse_match git show :folder1/a &&
# The error message differs depending on whether
# the directory exists in the worktree.
test_all_match test_must_fail git show :deep/ &&
test_must_fail git -C full-checkout show :folder1/ &&
test_sparse_match test_must_fail git show :folder1/ &&
# Change the sparse cone for an extra case:
run_on_sparse git sparse-checkout set deep/deeper1 &&
# deep/deeper2 is a sparse directory in the sparse index.
test_sparse_match test_must_fail git show :deep/deeper2/ &&
# deep/deeper2/deepest is not in the sparse index, but
# will trigger an index expansion.
test_sparse_match test_must_fail git show :deep/deeper2/deepest/
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
fatal: path 'folder1/' exists on disk, but not in the index
ok 52 - show (cached blobs/trees)
expecting success of 1092.53 'rev-parse (cached blobs/trees)':
init_repos &&
test_all_match git rev-parse :a &&
test_all_match git rev-parse :deep/a &&
test_sparse_match git rev-parse :folder1/a &&
# The error message differs depending on whether
# the directory exists in the worktree.
test_all_match test_must_fail git rev-parse :deep/ &&
test_must_fail git -C full-checkout rev-parse :folder1/ &&
test_sparse_match test_must_fail git rev-parse :folder1/ &&
# Change the sparse cone for an extra case:
run_on_sparse git sparse-checkout set deep/deeper1 &&
# deep/deeper2 is a sparse directory in the sparse index.
test_sparse_match test_must_fail git rev-parse :deep/deeper2/ &&
# deep/deeper2/deepest is not in the sparse index, but
# will trigger an index expansion.
test_sparse_match test_must_fail git rev-parse :deep/deeper2/deepest/
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
fatal: path 'folder1/' exists on disk, but not in the index
:folder1/
ok 53 - rev-parse (cached blobs/trees)
expecting success of 1092.54 'submodule handling':
init_repos &&
test_sparse_match git sparse-checkout add modules &&
test_all_match mkdir modules &&
test_all_match touch modules/a &&
test_all_match git add modules &&
test_all_match git commit -m "add modules directory" &&
test_config_global protocol.file.allow always &&
run_on_all git submodule add "$(pwd)/initial-repo" modules/sub &&
test_all_match git commit -m "add submodule" &&
# having a submodule prevents "modules" from collapse
test_sparse_match git sparse-checkout set deep/deeper1 &&
git -C sparse-index ls-files --sparse --stage >cache &&
grep "100644 .* modules/a" cache &&
grep "160000 $(git -C initial-repo rev-parse HEAD) 0 modules/sub" cache
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 modules/a
160000 703fd3e56687611d5c0264e6f007e18e96f794bf 0 modules/sub
ok 54 - submodule handling
expecting success of 1092.55 'sparse-index is expanded and converted back':
init_repos &&
GIT_TRACE2_EVENT="$(pwd)/trace2.txt" \
git -C sparse-index reset -- folder1/a &&
test_region index convert_to_sparse trace2.txt &&
test_region index ensure_full_index trace2.txt &&
# ls-files expands on read, but does not write.
rm trace2.txt &&
GIT_TRACE2_EVENT="$(pwd)/trace2.txt" GIT_TRACE2_EVENT_NESTING=10 \
git -C sparse-index ls-files &&
test_region index ensure_full_index trace2.txt
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
{"event":"region_enter","sid":"20230916T191209.458271Z-Hc54f2dd4-P00005a6f","thread":"main","time":"2023-09-16T19:12:09.471426Z","file":"sparse-index.c","line":206,"repo":1,"nesting":1,"category":"index","label":"convert_to_sparse"}
{"event":"region_leave","sid":"20230916T191209.458271Z-Hc54f2dd4-P00005a6f","thread":"main","time":"2023-09-16T19:12:09.472757Z","file":"sparse-index.c","line":220,"repo":1,"t_rel":0.001334,"nesting":1,"category":"index","label":"convert_to_sparse"}
{"event":"region_enter","sid":"20230916T191209.458271Z-Hc54f2dd4-P00005a6f","thread":"main","time":"2023-09-16T19:12:09.465377Z","file":"sparse-index.c","line":334,"repo":1,"nesting":1,"category":"index","label":"ensure_full_index"}
{"event":"region_enter","sid":"20230916T191209.458271Z-Hc54f2dd4-P00005a6f","thread":"main","time":"2023-09-16T19:12:09.474775Z","file":"sparse-index.c","line":334,"repo":1,"nesting":1,"category":"index","label":"ensure_full_index"}
{"event":"region_leave","sid":"20230916T191209.458271Z-Hc54f2dd4-P00005a6f","thread":"main","time":"2023-09-16T19:12:09.468346Z","file":"sparse-index.c","line":416,"repo":1,"t_rel":0.002958,"nesting":1,"category":"index","label":"ensure_full_index"}
{"event":"region_leave","sid":"20230916T191209.458271Z-Hc54f2dd4-P00005a6f","thread":"main","time":"2023-09-16T19:12:09.476362Z","file":"sparse-index.c","line":416,"repo":1,"t_rel":0.001588,"nesting":1,"category":"index","label":"ensure_full_index"}
a
before/a
before/b
deep/a
deep/before/a
deep/deeper1/0/0/0
deep/deeper1/0/1
deep/deeper1/a
deep/deeper1/deepest/a
deep/deeper1/deepest2/a
deep/deeper1/deepest3/a
deep/deeper1/e
deep/deeper2/a
deep/deeper2/deeper1/a
deep/deeper2/deeper1/deepest/a
deep/deeper2/deeper1/deepest2/a
deep/deeper2/deeper1/deepest3/a
deep/deeper2/deeper1/e
deep/e
deep/later/a
e
folder1-
folder1.x
folder1/0/0/0
folder1/0/1
folder1/a
folder10
folder2/0/0/0
folder2/0/1
folder2/a
g
x/a
z
{"event":"region_enter","sid":"20230916T191209.505866Z-Hc54f2dd4-P00005a90","thread":"main","time":"2023-09-16T19:12:09.511574Z","file":"sparse-index.c","line":334,"repo":1,"nesting":1,"category":"index","label":"ensure_full_index"}
{"event":"region_leave","sid":"20230916T191209.505866Z-Hc54f2dd4-P00005a90","thread":"main","time":"2023-09-16T19:12:09.514643Z","file":"sparse-index.c","line":416,"repo":1,"t_rel":0.003066,"nesting":1,"category":"index","label":"ensure_full_index"}
ok 55 - sparse-index is expanded and converted back
expecting success of 1092.56 'index.sparse disabled inline uses full index':
init_repos &&
# When index.sparse is disabled inline with `git status`, the
# index is expanded at the beginning of the execution then never
# converted back to sparse. It is then written to disk as a full index.
rm -f trace2.txt &&
GIT_TRACE2_EVENT="$(pwd)/trace2.txt" GIT_TRACE2_EVENT_NESTING=10 \
git -C sparse-index -c index.sparse=false status &&
! test_region index convert_to_sparse trace2.txt &&
test_region index ensure_full_index trace2.txt &&
# Since index.sparse is set to true at a repo level, the index
# is converted from full to sparse when read, then never expanded
# over the course of `git status`. It is written to disk as a sparse
# index.
rm -f trace2.txt &&
GIT_TRACE2_EVENT="$(pwd)/trace2.txt" GIT_TRACE2_EVENT_NESTING=10 \
git -C sparse-index status &&
test_region index convert_to_sparse trace2.txt &&
! test_region index ensure_full_index trace2.txt &&
# Now that the index has been written to disk as sparse, it is not
# converted to sparse (or expanded to full) when read by `git status`.
rm -f trace2.txt &&
GIT_TRACE2_EVENT="$(pwd)/trace2.txt" GIT_TRACE2_EVENT_NESTING=10 \
git -C sparse-index status &&
! test_region index convert_to_sparse trace2.txt &&
! test_region index ensure_full_index trace2.txt
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
On branch base
You are in a sparse checkout with 73% of tracked files present.
nothing to commit, working tree clean
{"event":"region_enter","sid":"20230916T191210.008894Z-Hc54f2dd4-P00005b74","thread":"main","time":"2023-09-16T19:12:10.014406Z","file":"sparse-index.c","line":334,"repo":1,"nesting":2,"category":"index","label":"ensure_full_index"}
{"event":"region_leave","sid":"20230916T191210.008894Z-Hc54f2dd4-P00005b74","thread":"main","time":"2023-09-16T19:12:10.017512Z","file":"sparse-index.c","line":416,"repo":1,"t_rel":0.003106,"nesting":2,"category":"index","label":"ensure_full_index"}
On branch base
You are in a sparse checkout.
nothing to commit, working tree clean
{"event":"region_enter","sid":"20230916T191210.050030Z-Hc54f2dd4-P00005b87","thread":"main","time":"2023-09-16T19:12:10.054113Z","file":"sparse-index.c","line":206,"repo":1,"nesting":2,"category":"index","label":"convert_to_sparse"}
{"event":"region_leave","sid":"20230916T191210.050030Z-Hc54f2dd4-P00005b87","thread":"main","time":"2023-09-16T19:12:10.055443Z","file":"sparse-index.c","line":220,"repo":1,"t_rel":0.001331,"nesting":2,"category":"index","label":"convert_to_sparse"}
On branch base
You are in a sparse checkout.
nothing to commit, working tree clean
ok 56 - index.sparse disabled inline uses full index
expecting success of 1092.57 'sparse-index is not expanded':
init_repos &&
ensure_not_expanded status &&
ensure_not_expanded ls-files --sparse &&
ensure_not_expanded commit --allow-empty -m empty &&
echo >>sparse-index/a &&
ensure_not_expanded commit -a -m a &&
echo >>sparse-index/a &&
ensure_not_expanded commit --include a -m a &&
echo >>sparse-index/deep/deeper1/a &&
ensure_not_expanded commit --include deep/deeper1/a -m deeper &&
ensure_not_expanded checkout rename-out-to-out &&
ensure_not_expanded checkout - &&
ensure_not_expanded switch rename-out-to-out &&
ensure_not_expanded switch - &&
ensure_not_expanded reset --hard &&
ensure_not_expanded checkout rename-out-to-out -- deep/deeper1 &&
ensure_not_expanded reset --hard &&
ensure_not_expanded restore -s rename-out-to-out -- deep/deeper1 &&
echo >>sparse-index/README.md &&
ensure_not_expanded add -A &&
echo >>sparse-index/extra.txt &&
ensure_not_expanded add extra.txt &&
echo >>sparse-index/untracked.txt &&
ensure_not_expanded add . &&
ensure_not_expanded checkout-index -f a &&
ensure_not_expanded checkout-index -f --all &&
for ref in update-deep update-folder1 update-folder2 update-deep
do
echo >>sparse-index/README.md &&
ensure_not_expanded reset --hard $ref || return 1
done &&
ensure_not_expanded reset --mixed base &&
ensure_not_expanded reset --hard update-deep &&
ensure_not_expanded reset --keep base &&
ensure_not_expanded reset --merge update-deep &&
ensure_not_expanded reset --hard &&
ensure_not_expanded reset base -- deep/a &&
ensure_not_expanded reset base -- nonexistent-file &&
ensure_not_expanded reset deepest -- deep &&
# Although folder1 is outside the sparse definition, it exists as a
# directory entry in the index, so the pathspec will not force the
# index to be expanded.
ensure_not_expanded reset deepest -- folder1 &&
ensure_not_expanded reset deepest -- folder1/ &&
# Wildcard identifies only in-cone files, no index expansion
ensure_not_expanded reset deepest -- deep/\* &&
# Wildcard identifies only full sparse directories, no index expansion
ensure_not_expanded reset deepest -- folder\* &&
ensure_not_expanded clean -fd &&
ensure_not_expanded checkout -f update-deep &&
test_config -C sparse-index pull.twohead ort &&
(
sane_unset GIT_TEST_MERGE_ALGORITHM &&
for OPERATION in "merge -m merge" cherry-pick rebase
do
ensure_not_expanded merge -m merge update-folder1 &&
ensure_not_expanded merge -m merge update-folder2 || return 1
done
)
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 57 - sparse-index is not expanded
expecting success of 1092.58 'sparse-index is not expanded: merge conflict in cone':
init_repos &&
for side in right left
do
git -C sparse-index checkout -b expand-$side base &&
echo $side >sparse-index/deep/a &&
git -C sparse-index commit -a -m "$side" || return 1
done &&
(
sane_unset GIT_TEST_MERGE_ALGORITHM &&
git -C sparse-index config pull.twohead ort &&
ensure_not_expanded ! merge -m merged expand-right
)
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
Switched to a new branch 'expand-right'
[expand-right 5ebbff9] right
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to a new branch 'expand-left'
[expand-left 9bcd6b8] left
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 58 - sparse-index is not expanded: merge conflict in cone
expecting success of 1092.59 'sparse-index is not expanded: stash':
init_repos &&
echo >>sparse-index/a &&
ensure_not_expanded stash &&
ensure_not_expanded stash list &&
ensure_not_expanded stash show stash@{0} &&
ensure_not_expanded stash apply stash@{0} &&
ensure_not_expanded stash drop stash@{0} &&
echo >>sparse-index/deep/new &&
ensure_not_expanded stash -u &&
(
WITHOUT_UNTRACKED_TXT=1 &&
ensure_not_expanded stash pop
) &&
ensure_not_expanded stash create &&
oid=$(git -C sparse-index stash create) &&
ensure_not_expanded stash store -m "test" $oid &&
ensure_not_expanded reset --hard &&
ensure_not_expanded stash pop
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 59 - sparse-index is not expanded: stash
expecting success of 1092.60 'sparse index is not expanded: diff':
init_repos &&
write_script edit-contents <<-\EOF &&
echo text >>$1
EOF
# Add file within cone
test_sparse_match git sparse-checkout set deep &&
run_on_all ../edit-contents deep/testfile &&
test_all_match git add deep/testfile &&
run_on_all ../edit-contents deep/testfile &&
test_all_match git diff &&
test_all_match git diff --cached &&
ensure_not_expanded diff &&
ensure_not_expanded diff --cached &&
# Add file outside cone
test_all_match git reset --hard &&
run_on_all mkdir newdirectory &&
run_on_all ../edit-contents newdirectory/testfile &&
test_sparse_match git sparse-checkout set newdirectory &&
test_all_match git add newdirectory/testfile &&
run_on_all ../edit-contents newdirectory/testfile &&
test_sparse_match git sparse-checkout set &&
test_all_match git diff &&
test_all_match git diff --cached &&
ensure_not_expanded diff &&
ensure_not_expanded diff --cached &&
# Merge conflict outside cone
# The sparse checkout will report a warning that is not in the
# full checkout, so we use `run_on_all` instead of
# `test_all_match`
run_on_all git reset --hard &&
test_all_match git checkout merge-left &&
test_all_match test_must_fail git merge merge-right &&
test_all_match git diff &&
test_all_match git diff --cached &&
ensure_not_expanded diff &&
ensure_not_expanded diff --cached
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 60 - sparse index is not expanded: diff
expecting success of 1092.61 'sparse index is not expanded: show and rev-parse':
init_repos &&
ensure_not_expanded show :a &&
ensure_not_expanded show :deep/a &&
ensure_not_expanded rev-parse :a &&
ensure_not_expanded rev-parse :deep/a
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 61 - sparse index is not expanded: show and rev-parse
expecting success of 1092.62 'sparse index is not expanded: update-index':
init_repos &&
deep_a_oid=$(git -C full-checkout rev-parse update-deep:deep/a) &&
ensure_not_expanded update-index --cacheinfo 100644 $deep_a_oid deep/a &&
echo "test" >sparse-index/README.md &&
echo "test2" >sparse-index/a &&
rm -f sparse-index/deep/a &&
ensure_not_expanded update-index --add README.md &&
ensure_not_expanded update-index a &&
ensure_not_expanded update-index --remove deep/a &&
ensure_not_expanded reset --soft update-deep &&
ensure_not_expanded update-index --add --remove --again
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 62 - sparse index is not expanded: update-index
expecting success of 1092.63 'sparse index is not expanded: blame':
init_repos &&
for file in a \
deep/a \
deep/deeper1/a \
deep/deeper1/deepest/a
do
ensure_not_expanded blame $file || return 1
done
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 63 - sparse index is not expanded: blame
expecting success of 1092.64 'sparse index is not expanded: fetch/pull':
init_repos &&
git -C sparse-index remote add full "file://$(pwd)/full-checkout" &&
ensure_not_expanded fetch full &&
git -C full-checkout commit --allow-empty -m "for pull merge" &&
git -C sparse-index commit --allow-empty -m "for pull merge" &&
ensure_not_expanded pull full base
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
[base f236285] for pull merge
Author: A U Thor <author@example.com>
[base f236285] for pull merge
Author: A U Thor <author@example.com>
ok 64 - sparse index is not expanded: fetch/pull
expecting success of 1092.65 'sparse index is not expanded: read-tree':
init_repos &&
ensure_not_expanded checkout -b test-branch update-folder1 &&
for MERGE_TREES in "base HEAD update-folder2" \
"base HEAD rename-base" \
"base update-folder2" \
"base rename-base" \
"update-folder2"
do
ensure_not_expanded read-tree -mu $MERGE_TREES &&
ensure_not_expanded reset --hard || return 1
done &&
rm -rf sparse-index/deep/deeper2 &&
ensure_not_expanded add . &&
ensure_not_expanded commit -m "test" &&
ensure_not_expanded read-tree --prefix=deep/deeper2 -u deepest
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 65 - sparse index is not expanded: read-tree
expecting success of 1092.66 'ls-files':
init_repos &&
# Use a smaller sparse-checkout for reduced output
test_sparse_match git sparse-checkout set &&
# Behavior agrees by default. Sparse index is expanded.
test_all_match git ls-files &&
# With --sparse, the sparse index data changes behavior.
git -C sparse-index ls-files --sparse >actual &&
cat >expect <<-\EOF &&
a
before/
deep/
e
folder1-
folder1.x
folder1/
folder10
folder2/
g
x/
z
EOF
test_cmp expect actual &&
# With --sparse and no sparse index, nothing changes.
git -C sparse-checkout ls-files >dense &&
git -C sparse-checkout ls-files --sparse >sparse &&
test_cmp dense sparse &&
# Set up a strange condition of having a file edit
# outside of the sparse-checkout cone. We want to verify
# that all modes handle this the same, and detect the
# modification.
write_script edit-content <<-\EOF &&
mkdir -p folder1 &&
echo content >>folder1/a
EOF
run_on_all ../edit-content &&
test_all_match git ls-files --modified &&
git -C sparse-index ls-files --sparse --modified >sparse-index-out &&
cat >expect <<-\EOF &&
folder1/a
EOF
test_cmp expect sparse-index-out &&
# Add folder1 to the sparse-checkout cone and
# check that ls-files shows the expanded files.
test_sparse_match git sparse-checkout add folder1 &&
test_all_match git ls-files --modified &&
test_all_match git ls-files &&
git -C sparse-index ls-files --sparse >actual &&
cat >expect <<-\EOF &&
a
before/
deep/
e
folder1-
folder1.x
folder1/0/0/0
folder1/0/1
folder1/a
folder10
folder2/
g
x/
z
EOF
test_cmp expect actual &&
# Double-check index expansion is avoided
ensure_not_expanded ls-files --sparse
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 66 - ls-files
expecting success of 1092.67 'sparse index is not expanded: sparse-checkout':
init_repos &&
ensure_not_expanded sparse-checkout set deep/deeper2 &&
ensure_not_expanded sparse-checkout set deep/deeper1 &&
ensure_not_expanded sparse-checkout set deep &&
ensure_not_expanded sparse-checkout add folder1 &&
ensure_not_expanded sparse-checkout set deep/deeper1 &&
ensure_not_expanded sparse-checkout set folder2 &&
# Demonstrate that the checks that "folder1/a" is a file
# do not cause a sparse-index expansion (since it is in the
# sparse-checkout cone).
echo >>sparse-index/folder2/a &&
git -C sparse-index add folder2/a &&
ensure_not_expanded sparse-checkout add folder1 &&
# Skip checks here, since deep/deeper1 is inside a sparse directory
# that must be expanded to check whether `deep/deeper1` is a file
# or not.
ensure_not_expanded sparse-checkout set --skip-checks deep/deeper1 &&
ensure_not_expanded sparse-checkout set
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 67 - sparse index is not expanded: sparse-checkout
expecting success of 1092.68 'reset mixed and checkout orphan':
init_repos &&
test_all_match git checkout rename-out-to-in &&
# Sparse checkouts do not agree with full checkouts about
# how to report a directory/file conflict during a reset.
# This command would fail with test_all_match because the
# full checkout reports "T folder1/0/1" while a sparse
# checkout reports "D folder1/0/1". This matches because
# the sparse checkouts skip "adding" the other side of
# the conflict.
test_sparse_match git reset --mixed HEAD~1 &&
test_sparse_match git ls-files --stage &&
test_sparse_match git status --porcelain=v2 &&
# At this point, sparse-checkouts behave differently
# from the full-checkout.
test_sparse_match git checkout --orphan new-branch &&
test_sparse_match git ls-files --stage &&
test_sparse_match git status --porcelain=v2
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 68 - reset mixed and checkout orphan
expecting success of 1092.69 'add everything with deep new file':
init_repos &&
run_on_sparse git sparse-checkout set deep/deeper1/deepest &&
run_on_all touch deep/deeper1/x &&
test_all_match git add . &&
test_all_match git status --porcelain=v2
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 69 - add everything with deep new file
expecting success of 1092.70 'checkout behaves oddly with df-conflict-1':
init_repos &&
test_sparse_match git sparse-checkout disable &&
write_script edit-content <<-\EOF &&
echo content >>folder1/larger-content
git add folder1
EOF
run_on_all ../edit-content &&
test_all_match git status --porcelain=v2 &&
git -C sparse-checkout sparse-checkout init --cone &&
git -C sparse-index sparse-checkout init --cone --sparse-index &&
test_all_match git status --porcelain=v2 &&
# This checkout command should fail, because we have a staged
# change to folder1/larger-content, but the destination changes
# folder1 to a file.
git -C full-checkout checkout df-conflict-1 \
1>full-checkout-out \
2>full-checkout-err &&
git -C sparse-checkout checkout df-conflict-1 \
1>sparse-checkout-out \
2>sparse-checkout-err &&
git -C sparse-index checkout df-conflict-1 \
1>sparse-index-out \
2>sparse-index-err &&
# Instead, the checkout deletes the folder1 file and adds the
# folder1/larger-content file, leaving all other paths that were
# in folder1/ as deleted (without any warning).
cat >expect <<-EOF &&
D folder1
A folder1/larger-content
EOF
test_cmp expect full-checkout-out &&
test_cmp expect sparse-checkout-out &&
# The sparse-index reports no output
test_must_be_empty sparse-index-out &&
# stderr: Switched to branch df-conflict-1
test_cmp full-checkout-err sparse-checkout-err &&
test_cmp full-checkout-err sparse-checkout-err
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 70 - checkout behaves oddly with df-conflict-1
expecting success of 1092.71 'checkout behaves oddly with df-conflict-2':
init_repos &&
test_sparse_match git sparse-checkout disable &&
write_script edit-content <<-\EOF &&
echo content >>folder2/larger-content
git add folder2
EOF
run_on_all ../edit-content &&
test_all_match git status --porcelain=v2 &&
git -C sparse-checkout sparse-checkout init --cone &&
git -C sparse-index sparse-checkout init --cone --sparse-index &&
test_all_match git status --porcelain=v2 &&
# This checkout command should fail, because we have a staged
# change to folder1/larger-content, but the destination changes
# folder1 to a file.
git -C full-checkout checkout df-conflict-2 \
1>full-checkout-out \
2>full-checkout-err &&
git -C sparse-checkout checkout df-conflict-2 \
1>sparse-checkout-out \
2>sparse-checkout-err &&
git -C sparse-index checkout df-conflict-2 \
1>sparse-index-out \
2>sparse-index-err &&
# The full checkout deviates from the df-conflict-1 case here!
# It drops the change to folder1/larger-content and leaves the
# folder1 path as-is on disk. The sparse-index behaves the same.
test_must_be_empty full-checkout-out &&
test_must_be_empty sparse-index-out &&
# In the sparse-checkout case, the checkout deletes the folder1
# file and adds the folder1/larger-content file, leaving all other
# paths that were in folder1/ as deleted (without any warning).
cat >expect <<-EOF &&
D folder2
A folder2/larger-content
EOF
test_cmp expect sparse-checkout-out &&
# Switched to branch df-conflict-1
test_cmp full-checkout-err sparse-checkout-err &&
test_cmp full-checkout-err sparse-index-err
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 71 - checkout behaves oddly with df-conflict-2
expecting success of 1092.72 'mv directory from out-of-cone to in-cone':
init_repos &&
# <source> as a sparse directory (or SKIP_WORKTREE_DIR without enabling
# sparse index).
test_all_match git mv --sparse folder1 deep &&
test_all_match git status --porcelain=v2 &&
test_sparse_match git ls-files -t &&
git -C sparse-checkout ls-files -t >actual &&
grep -e "H deep/folder1/0/0/0" actual &&
grep -e "H deep/folder1/0/1" actual &&
grep -e "H deep/folder1/a" actual &&
test_all_match git reset --hard &&
# <source> as a directory deeper than sparse index boundary (where
# sparse index will expand).
test_sparse_match git mv --sparse folder1/0 deep &&
test_sparse_match git status --porcelain=v2 &&
test_sparse_match git ls-files -t &&
git -C sparse-checkout ls-files -t >actual &&
grep -e "H deep/0/0/0" actual &&
grep -e "H deep/0/1" actual
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
H deep/folder1/0/0/0
H deep/folder1/0/1
H deep/folder1/a
H deep/0/0/0
H deep/0/1
ok 72 - mv directory from out-of-cone to in-cone
expecting success of 1092.73 'rm pathspec inside sparse definition':
init_repos &&
test_all_match git rm deep/a &&
test_all_match git status --porcelain=v2 &&
# test wildcard
run_on_all git reset --hard &&
test_all_match git rm deep/* &&
test_all_match git status --porcelain=v2 &&
# test recursive rm
run_on_all git reset --hard &&
test_all_match git rm -r deep &&
test_all_match git status --porcelain=v2
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 73 - rm pathspec inside sparse definition
expecting success of 1092.74 'rm pathspec outside sparse definition':
init_repos &&
for file in folder1/a folder1/0/1
do
test_sparse_match test_must_fail git rm $file &&
test_sparse_match test_must_fail git rm --cached $file &&
test_sparse_match git rm --sparse $file &&
test_sparse_match git status --porcelain=v2 || return 1
done &&
cat >folder1-full <<-EOF &&
rm ${SQ}folder1/0/0/0${SQ}
rm ${SQ}folder1/0/1${SQ}
rm ${SQ}folder1/a${SQ}
EOF
cat >folder1-sparse <<-EOF &&
rm ${SQ}folder1/${SQ}
EOF
# test wildcard
run_on_sparse git reset --hard &&
run_on_sparse git sparse-checkout reapply &&
test_sparse_match test_must_fail git rm folder1/* &&
run_on_sparse git rm --sparse folder1/* &&
test_cmp folder1-full sparse-checkout-out &&
test_cmp folder1-sparse sparse-index-out &&
test_sparse_match git status --porcelain=v2 &&
# test recursive rm
run_on_sparse git reset --hard &&
run_on_sparse git sparse-checkout reapply &&
test_sparse_match test_must_fail git rm --sparse folder1 &&
run_on_sparse git rm --sparse -r folder1 &&
test_cmp folder1-full sparse-checkout-out &&
test_cmp folder1-sparse sparse-index-out &&
test_sparse_match git status --porcelain=v2
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 74 - rm pathspec outside sparse definition
expecting success of 1092.75 'rm pathspec expands index when necessary':
init_repos &&
# in-cone pathspec (do not expand)
ensure_not_expanded rm "deep/deep*" &&
test_must_be_empty sparse-index-err &&
# out-of-cone pathspec (expand)
! ensure_not_expanded rm --sparse "folder1/a*" &&
test_must_be_empty sparse-index-err &&
# pathspec that should expand index
! ensure_not_expanded rm "*/a" &&
test_must_be_empty sparse-index-err &&
! ensure_not_expanded rm "**a" &&
test_must_be_empty sparse-index-err
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
{"event":"region_enter","sid":"20230916T191228.389925Z-Hc54f2dd4-P0000072a","thread":"main","time":"2023-09-16T19:12:28.524379Z","file":"sparse-index.c","line":334,"repo":1,"nesting":1,"category":"index","label":"ensure_full_index"}
{"event":"region_enter","sid":"20230916T191228.389925Z-Hc54f2dd4-P0000072a","thread":"main","time":"2023-09-16T19:12:28.532084Z","file":"sparse-index.c","line":334,"repo":1,"nesting":1,"category":"index","label":"ensure_full_index"}
{"event":"region_enter","sid":"20230916T191228.546153Z-Hc54f2dd4-P00000740","thread":"main","time":"2023-09-16T19:12:28.552623Z","file":"sparse-index.c","line":334,"repo":1,"nesting":1,"category":"index","label":"ensure_full_index"}
{"event":"region_enter","sid":"20230916T191228.546153Z-Hc54f2dd4-P00000740","thread":"main","time":"2023-09-16T19:12:28.561888Z","file":"sparse-index.c","line":334,"repo":1,"nesting":1,"category":"index","label":"ensure_full_index"}
{"event":"region_enter","sid":"20230916T191228.574865Z-Hc54f2dd4-P0000074d","thread":"main","time":"2023-09-16T19:12:28.580021Z","file":"sparse-index.c","line":334,"repo":1,"nesting":1,"category":"index","label":"ensure_full_index"}
{"event":"region_enter","sid":"20230916T191228.574865Z-Hc54f2dd4-P0000074d","thread":"main","time":"2023-09-16T19:12:28.586241Z","file":"sparse-index.c","line":334,"repo":1,"nesting":1,"category":"index","label":"ensure_full_index"}
ok 75 - rm pathspec expands index when necessary
expecting success of 1092.76 'sparse index is not expanded: rm':
init_repos &&
ensure_not_expanded rm deep/a &&
# test in-cone wildcard
git -C sparse-index reset --hard &&
ensure_not_expanded rm deep/* &&
# test recursive rm
git -C sparse-index reset --hard &&
ensure_not_expanded rm -r deep
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 76 - sparse index is not expanded: rm
expecting success of 1092.77 'grep with and --cached':
init_repos &&
test_all_match git grep --cached a &&
test_all_match git grep --cached a -- "folder1/*"
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 77 - grep with and --cached
expecting success of 1092.78 'grep is not expanded':
init_repos &&
ensure_not_expanded grep a &&
ensure_not_expanded grep a -- deep/* &&
# All files within the folder1/* pathspec are sparse,
# so this command does not find any matches
ensure_not_expanded ! grep a -- folder1/* &&
# test out-of-cone pathspec with or without wildcard
ensure_not_expanded grep --cached a -- "folder1/a" &&
ensure_not_expanded grep --cached a -- "folder1/*" &&
# test in-cone pathspec with or without wildcard
ensure_not_expanded grep --cached a -- "deep/a" &&
ensure_not_expanded grep --cached a -- "deep/*"
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
ok 78 - grep is not expanded
checking known breakage of 1092.79 'grep within submodules is not expanded':
init_repos_as_submodules &&
# do not use ensure_not_expanded() here, becasue `grep` should be
# run in the superproject, not in "./sparse-index"
GIT_TRACE2_EVENT="$(pwd)/trace2.txt" \
git grep --cached --recurse-submodules a -- "*/folder1/*" &&
test_region ! index ensure_full_index trace2.txt
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
Adding existing repo at 'full-checkout' to the index
Adding existing repo at 'sparse-checkout' to the index
Adding existing repo at 'sparse-index' to the index
703fd3e56687611d5c0264e6f007e18e96f794bf full-checkout (heads/base)
703fd3e56687611d5c0264e6f007e18e96f794bf sparse-checkout (heads/base)
703fd3e56687611d5c0264e6f007e18e96f794bf sparse-index (heads/base)
full-checkout/folder1/a:a
sparse-checkout/folder1/a:a
sparse-index/folder1/a:a
{"event":"region_enter","sid":"20230916T191233.117006Z-Hc54f2dd4-P0000116e","thread":"main","time":"2023-09-16T19:12:33.134702Z","file":"sparse-index.c","line":334,"repo":4,"nesting":2,"category":"index","label":"ensure_full_index"}
not ok 79 - grep within submodules is not expanded # TODO known breakage
expecting success of 1092.80 'grep sparse directory within submodules':
init_repos_as_submodules &&
cat >expect <<-\EOF &&
full-checkout/folder1/a:a
sparse-checkout/folder1/a:a
sparse-index/folder1/a:a
EOF
git grep --cached --recurse-submodules a -- "*/folder1/*" >actual &&
test_cmp actual expect
warning: unable to rmdir 'full-checkout': Directory not empty
warning: unable to rmdir 'sparse-checkout': Directory not empty
warning: unable to rmdir 'sparse-index': Directory not empty
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
HEAD is now at 703fd3e initial commit
Adding existing repo at 'full-checkout' to the index
Adding existing repo at 'sparse-checkout' to the index
Adding existing repo at 'sparse-index' to the index
703fd3e56687611d5c0264e6f007e18e96f794bf full-checkout (heads/base)
703fd3e56687611d5c0264e6f007e18e96f794bf sparse-checkout (heads/base)
703fd3e56687611d5c0264e6f007e18e96f794bf sparse-index (heads/base)
ok 80 - grep sparse directory within submodules
# still have 1 known breakage(s)
# passed all remaining 79 test(s)
1..80
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3001-ls-files-others-exclude.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
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
ok 20 - hide empty ignored directory with --no-empty-directory
expecting success of 3001.21 'show/hide empty ignored sub-directory (setup)':
> top/l1/tracked &&
(
cd top &&
git add -f l1/tracked
)
ok 21 - show/hide empty ignored sub-directory (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 &&
test_cmp expect actual
ok 22 - show empty ignored sub-directory with --directory
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
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 &&
test_cmp expect actual
ok 25 - ls-files with "**" patterns
expecting success of 3001.26 'ls-files with "**" patterns and --directory':
# Expectation same as previous test
git ls-files --directory -o -i --exclude "**/a.1" >actual &&
test_cmp expect actual
ok 26 - ls-files with "**" patterns and --directory
expecting success of 3001.27 'ls-files with "**" patterns and no slashes':
git ls-files -o -i --exclude "one**a.1" >actual &&
test_must_be_empty actual
ok 27 - ls-files with "**" patterns and no slashes
# passed all 27 test(s)
1..27
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3002-ls-files-dashpath.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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.':
test_when_finished "rm -f expect" &&
git ls-files --others >output &&
cat >expect <<-\EOF &&
--
-foo
output
path0
EOF
test_cmp output expect
ok 2 - git ls-files without path restriction.
expecting success of 3002.3 'git ls-files with path restriction.':
test_when_finished "rm -f expect" &&
git ls-files --others path0 >output &&
cat >expect <<-\EOF &&
path0
EOF
test_cmp output expect
ok 3 - git ls-files with path restriction.
expecting success of 3002.4 'git ls-files with path restriction with --.':
test_when_finished "rm -f expect" &&
git ls-files --others -- path0 >output &&
cat >expect <<-\EOF &&
path0
EOF
test_cmp output expect
ok 4 - git ls-files with path restriction with --.
expecting success of 3002.5 'git ls-files with path restriction with -- --.':
test_when_finished "rm -f expect" &&
git ls-files --others -- -- >output &&
cat >expect <<-\EOF &&
--
EOF
test_cmp output expect
ok 5 - git ls-files with path restriction with -- --.
expecting success of 3002.6 'git ls-files with no path restriction.':
test_when_finished "rm -f expect" &&
git ls-files --others -- >output &&
cat >expect <<-\EOF &&
--
-foo
output
path0
EOF
test_cmp output expect
ok 6 - git ls-files with no path restriction.
# passed all 6 test(s)
1..6
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3003-ls-files-exclude.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
[master (root-commit) 39caa03] file
Author: A U Thor <author@example.com>
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 -c lists only tracked-but-ignored files':
echo content >other-file &&
git add other-file &&
echo file >expect &&
git ls-files -i -c --exclude-standard >output &&
test_cmp expect output
ok 7 - ls-files -i -c lists only tracked-but-ignored files
# passed all 7 test(s)
1..7
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3004-ls-files-basic.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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
usage: git ls-files [<options>] [<file>...]
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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3004-ls-files-basic/broken/.git/
usage: git ls-files [<options>] [<file>...]
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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3005-ls-files-relative.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3005-ls-files-relative/.git/
expecting success of 3005.1 'prepare':
: >never-mind-me &&
git add never-mind-me &&
mkdir top &&
(
cd top &&
mkdir sub &&
x="x xa xbc xdef xghij xklmno" &&
y=$(echo "$x" | tr x y) &&
touch $x &&
touch $y &&
cd sub &&
git add ../x*
)
ok 1 - prepare
expecting success of 3005.2 'ls-files with mixed levels':
(
cd top/sub &&
cat >expect <<-EOF &&
../../never-mind-me
../x
EOF
git ls-files $(cat expect) >actual &&
test_cmp expect actual
)
ok 2 - ls-files with mixed levels
expecting success of 3005.3 'ls-files -c':
(
cd top/sub &&
printf "error: pathspec $SQ%s$SQ did not match any file(s) known to git\n" ../y* >expect.err &&
echo "Did you forget to ${SQ}git add${SQ}?" >>expect.err &&
ls ../x* >expect.out &&
test_must_fail git ls-files -c --error-unmatch ../[xy]* >actual.out 2>actual.err &&
test_cmp expect.out actual.out &&
test_cmp expect.err actual.err
)
ok 3 - ls-files -c
expecting success of 3005.4 'ls-files -o':
(
cd top/sub &&
printf "error: pathspec $SQ%s$SQ did not match any file(s) known to git\n" ../x* >expect.err &&
echo "Did you forget to ${SQ}git add${SQ}?" >>expect.err &&
ls ../y* >expect.out &&
test_must_fail git ls-files -o --error-unmatch ../[xy]* >actual.out 2>actual.err &&
test_cmp expect.out actual.out &&
test_cmp expect.err actual.err
)
ok 4 - ls-files -o
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3006-ls-files-long.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 &&
(
echo "$path_a" &&
echo "$path_z"
) >expect &&
git ls-files >actual &&
test_cmp expect actual
ok 3 - overly-long path does not replace another by mistake
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t2501-cwd-empty.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/.git/
expecting success of 2501.1 'setup':
test_commit init &&
git branch fd_conflict &&
mkdir -p foo/bar &&
test_commit foo/bar/baz &&
git revert HEAD &&
git tag reverted &&
git checkout fd_conflict &&
mkdir dirORfile &&
test_commit dirORfile/foo &&
git rm -r dirORfile &&
echo not-a-directory >dirORfile &&
git add dirORfile &&
git commit -m dirORfile &&
git switch -c df_conflict HEAD~1 &&
test_commit random_file &&
git switch -c undo_fd_conflict fd_conflict &&
git revert HEAD
[master (root-commit) 2519212] init
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 init.t
[master f4c5aab] foo/bar/baz
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo/bar/baz.t
[master 968d1fe] Revert "foo/bar/baz"
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 deletion(-)
delete mode 100644 foo/bar/baz.t
Switched to branch 'fd_conflict'
[fd_conflict d7f9e78] dirORfile/foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 dirORfile/foo.t
rm 'dirORfile/foo.t'
[fd_conflict 9658629] dirORfile
Author: A U Thor <author@example.com>
2 files changed, 1 insertion(+), 1 deletion(-)
create mode 100644 dirORfile
delete mode 100644 dirORfile/foo.t
Switched to a new branch 'df_conflict'
[df_conflict d90d7a3] random_file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 random_file.t
Switched to a new branch 'undo_fd_conflict'
[undo_fd_conflict 46c1835] Revert "dirORfile"
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
2 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 dirORfile
create mode 100644 dirORfile/foo.t
ok 1 - setup
expecting success of 2501.2 'checkout does not clean cwd incidentally':
test_incidental_dir_removal git checkout init
Note: switching to 'foo/bar/baz^{commit}'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at f4c5aab foo/bar/baz
Previous HEAD position was f4c5aab foo/bar/baz
HEAD is now at 2519212 init
/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/foo
HEAD is now at 2519212 init
ok 2 - checkout does not clean cwd incidentally
expecting success of 2501.3 'checkout fails if cwd needs to be removed':
test_required_dir_removal git checkout fd_conflict
Previous HEAD position was 2519212 init
HEAD is now at d90d7a3 random_file
error: Refusing to remove the current working directory:
/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/dirORfile
?? error
Removing error
Removing foo/
ok 3 - checkout fails if cwd needs to be removed
expecting success of 2501.4 'reset --hard does not clean cwd incidentally':
test_incidental_dir_removal git reset --hard init
Previous HEAD position was d90d7a3 random_file
HEAD is now at f4c5aab foo/bar/baz
HEAD is now at 2519212 init
/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/foo
HEAD is now at 2519212 init
ok 4 - reset --hard does not clean cwd incidentally
expecting success of 2501.5 'reset --hard fails if cwd needs to be removed':
test_required_dir_removal git reset --hard fd_conflict
Previous HEAD position was 2519212 init
HEAD is now at d90d7a3 random_file
error: Refusing to remove 'dirORfile' since it is the current working directory.
/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/dirORfile
?? error
Removing error
Removing foo/
ok 5 - reset --hard fails if cwd needs to be removed
expecting success of 2501.6 'merge does not clean cwd incidentally':
test_incidental_dir_removal git merge reverted
Previous HEAD position was d90d7a3 random_file
HEAD is now at f4c5aab foo/bar/baz
Updating f4c5aab..968d1fe
Fast-forward
foo/bar/baz.t | 1 -
1 file changed, 1 deletion(-)
delete mode 100644 foo/bar/baz.t
/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/foo
HEAD is now at 968d1fe Revert "foo/bar/baz"
ok 6 - merge does not clean cwd incidentally
expecting success of 2501.7 'merge fails if cwd needs to be removed; recursive friendly':
git checkout foo/bar/baz &&
test_when_finished "git clean -fdx" &&
mkdir dirORfile &&
(
cd dirORfile &&
test_must_fail git merge fd_conflict 2>../error
) &&
test_path_is_dir dirORfile &&
grep "Refusing to remove the current working directory" error
Previous HEAD position was 968d1fe Revert "foo/bar/baz"
HEAD is now at f4c5aab foo/bar/baz
error: Refusing to remove the current working directory:
Removing dirORfile/
Removing error
ok 7 - merge fails if cwd needs to be removed; recursive friendly
expecting success of 2501.8 'merge fails if cwd needs to be removed':
test_required_dir_removal git merge fd_conflict
Previous HEAD position was f4c5aab foo/bar/baz
HEAD is now at d90d7a3 random_file
error: Refusing to remove the current working directory:
/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/dirORfile
?? error
Removing error
ok 8 - merge fails if cwd needs to be removed
expecting success of 2501.9 'cherry-pick does not clean cwd incidentally':
test_incidental_dir_removal git cherry-pick reverted
Previous HEAD position was d90d7a3 random_file
HEAD is now at f4c5aab foo/bar/baz
[detached HEAD d0d1a1f] Revert "foo/bar/baz"
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
1 file changed, 1 deletion(-)
delete mode 100644 foo/bar/baz.t
/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/foo
HEAD is now at d0d1a1f Revert "foo/bar/baz"
ok 9 - cherry-pick does not clean cwd incidentally
expecting success of 2501.10 'cherry-pick fails if cwd needs to be removed':
test_required_dir_removal git cherry-pick fd_conflict
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
d0d1a1f Revert "foo/bar/baz"
If you want to keep it by creating a new branch, this may be a good time
to do so with:
git branch <new-branch-name> d0d1a1f
HEAD is now at d90d7a3 random_file
error: Refusing to remove the current working directory:
/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/dirORfile
?? error
Removing error
Removing foo/
ok 10 - cherry-pick fails if cwd needs to be removed
expecting success of 2501.11 'rebase does not clean cwd incidentally':
test_incidental_dir_removal git rebase reverted
Previous HEAD position was d90d7a3 random_file
HEAD is now at f4c5aab foo/bar/baz
Successfully rebased and updated detached HEAD.
/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/foo
HEAD is now at 968d1fe Revert "foo/bar/baz"
ok 11 - rebase does not clean cwd incidentally
expecting success of 2501.12 'rebase fails if cwd needs to be removed':
test_required_dir_removal git rebase fd_conflict
Previous HEAD position was 968d1fe Revert "foo/bar/baz"
HEAD is now at d90d7a3 random_file
error: Refusing to remove the current working directory:
/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/dirORfile
?? error
Removing error
Removing foo/
ok 12 - rebase fails if cwd needs to be removed
expecting success of 2501.13 'revert does not clean cwd incidentally':
test_incidental_dir_removal git revert HEAD
Previous HEAD position was d90d7a3 random_file
HEAD is now at f4c5aab foo/bar/baz
[detached HEAD f0f8756] Revert "foo/bar/baz"
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
1 file changed, 1 deletion(-)
delete mode 100644 foo/bar/baz.t
/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/foo
HEAD is now at f0f8756 Revert "foo/bar/baz"
ok 13 - revert does not clean cwd incidentally
expecting success of 2501.14 'revert fails if cwd needs to be removed':
test_required_dir_removal git revert undo_fd_conflict
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
f0f8756 Revert "foo/bar/baz"
If you want to keep it by creating a new branch, this may be a good time
to do so with:
git branch <new-branch-name> f0f8756
HEAD is now at d90d7a3 random_file
error: Refusing to remove the current working directory:
/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/dirORfile
?? error
Removing error
Removing foo/
ok 14 - revert fails if cwd needs to be removed
expecting success of 2501.15 'rm does not clean cwd incidentally':
test_incidental_dir_removal git rm bar/baz.t
Previous HEAD position was d90d7a3 random_file
HEAD is now at f4c5aab foo/bar/baz
rm 'foo/bar/baz.t'
/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/foo
D foo/bar/baz.t
HEAD is now at f4c5aab foo/bar/baz
ok 15 - rm does not clean cwd incidentally
expecting success of 2501.16 'apply does not remove cwd incidentally':
git diff HEAD HEAD~1 >patch &&
test_incidental_dir_removal git apply ../patch
HEAD is now at f4c5aab foo/bar/baz
/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/foo
D foo/bar/baz.t
?? patch
HEAD is now at f4c5aab foo/bar/baz
ok 16 - apply does not remove cwd incidentally
expecting success of 2501.17 'clean does not remove cwd incidentally':
test_incidental_untracked_dir_removal \
git -C .. clean -fd -e warnings . >warnings &&
grep "Refusing to remove current working directory" warnings
HEAD is now at f4c5aab foo/bar/baz
Refusing to remove current working directory
HEAD is now at f4c5aab foo/bar/baz
ok 17 - clean does not remove cwd incidentally
expecting success of 2501.18 'stash does not remove cwd incidentally':
test_incidental_untracked_dir_removal \
git stash --include-untracked
HEAD is now at f4c5aab foo/bar/baz
Saved working directory and index state WIP on (no branch): f4c5aab foo/bar/baz
Refusing to remove current working directory
/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/untracked
HEAD is now at f4c5aab foo/bar/baz
ok 18 - stash does not remove cwd incidentally
expecting success of 2501.19 '`rm -rf dir` only removes a subset of dir':
test_when_finished "rm -rf a/" &&
mkdir -p a/b/c &&
>a/b/c/untracked &&
>a/b/c/tracked &&
git add a/b/c/tracked &&
(
cd a/b &&
git rm -rf ../b
) &&
test_path_is_dir a/b &&
test_path_is_missing a/b/c/tracked &&
test_path_is_file a/b/c/untracked
rm 'a/b/c/tracked'
ok 19 - `rm -rf dir` only removes a subset of dir
expecting success of 2501.20 '`rm -rf dir` even with only tracked files will remove something else':
test_when_finished "rm -rf a/" &&
mkdir -p a/b/c &&
>a/b/c/tracked &&
git add a/b/c/tracked &&
(
cd a/b &&
git rm -rf ../b
) &&
test_path_is_missing a/b/c/tracked &&
test_path_is_missing a/b/c &&
test_path_is_dir a/b
rm 'a/b/c/tracked'
ok 20 - `rm -rf dir` even with only tracked files will remove something else
expecting success of 2501.21 'git version continues working from a deleted dir':
mkdir tmp &&
(
cd tmp &&
rm -rf ../tmp &&
git version
)
sh: 0: getcwd() failed: No such file or directory
git version 2.40.1
ok 21 - git version continues working from a deleted dir
expecting success of 2501.22 'rm -r with -C leaves submodule if cwd inside':
test_submodule_removal dir git -C .. rm -r my_submodule/
HEAD is now at f4c5aab foo/bar/baz
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/my_submodule/.git/
[master (root-commit) f132c27] initial commit
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 file
Adding existing repo at 'my_submodule' to the index
[detached HEAD 629a5d0] Add the submodule
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 my_submodule
Migrating git directory of 'my_submodule' from
'/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/my_submodule/.git' to
'/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/.git/modules/my_submodule'
fatal: could not remove 'my_submodule'
rm 'my_submodule'
HEAD is now at f4c5aab foo/bar/baz
ok 22 - rm -r with -C leaves submodule if cwd inside
expecting success of 2501.23 'rm -r leaves submodule if cwd inside':
test_submodule_removal dir \
git --git-dir=../.git --work-tree=.. rm -r ../my_submodule/
HEAD is now at f4c5aab foo/bar/baz
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/my_submodule/.git/
[master (root-commit) f132c27] initial commit
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 file
Adding existing repo at 'my_submodule' to the index
[detached HEAD 629a5d0] Add the submodule
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 my_submodule
Migrating git directory of 'my_submodule' from
'/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/my_submodule/.git' to
'/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/.git/modules/my_submodule'
fatal: could not remove 'my_submodule'
rm 'my_submodule'
HEAD is now at f4c5aab foo/bar/baz
ok 23 - rm -r leaves submodule if cwd inside
expecting success of 2501.24 'rm -rf removes submodule even if cwd inside':
test_submodule_removal missing \
git --git-dir=../.git --work-tree=.. rm -rf ../my_submodule/
HEAD is now at f4c5aab foo/bar/baz
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/my_submodule/.git/
[master (root-commit) f132c27] initial commit
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 file
Adding existing repo at 'my_submodule' to the index
[detached HEAD 629a5d0] Add the submodule
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 my_submodule
Migrating git directory of 'my_submodule' from
'/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/my_submodule/.git' to
'/<<PKGBUILDDIR>>/t/trash directory.t2501-cwd-empty/.git/modules/my_submodule'
rm 'my_submodule'
HEAD is now at f4c5aab foo/bar/baz
ok 24 - rm -rf removes submodule even if cwd inside
# passed all 24 test(s)
1..24
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3008-ls-files-lazy-init-name-hash.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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.001796 0.001585 4002 multi 2
ok 1 - no buffer overflow in lazy_init_name_hash
# passed all 1 test(s)
1..1
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3009-ls-files-others-nonsubmodule.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3009-ls-files-others-nonsubmodule/.git/
expecting success of 3009.1 'setup: directories':
mkdir nonrepo-no-files/ &&
mkdir nonrepo-untracked-file &&
: >nonrepo-untracked-file/untracked &&
git init repo-no-commit-no-files &&
git init repo-no-commit-untracked-file &&
: >repo-no-commit-untracked-file/untracked &&
git init repo-with-commit-no-files &&
git -C repo-with-commit-no-files commit --allow-empty -mmsg &&
git init repo-with-commit-untracked-file &&
test_commit -C repo-with-commit-untracked-file msg &&
: >repo-with-commit-untracked-file/untracked
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3009-ls-files-others-nonsubmodule/repo-no-commit-no-files/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3009-ls-files-others-nonsubmodule/repo-no-commit-untracked-file/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3009-ls-files-others-nonsubmodule/repo-with-commit-no-files/.git/
[master (root-commit) b4b9816] msg
Author: A U Thor <author@example.com>
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3009-ls-files-others-nonsubmodule/repo-with-commit-untracked-file/.git/
[master (root-commit) c24fc06] msg
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 msg.t
ok 1 - setup: directories
expecting success of 3009.2 'ls-files --others handles untracked git repositories':
git ls-files -o >output &&
cat >expect <<-EOF &&
nonrepo-untracked-file/untracked
output
repo-no-commit-no-files/
repo-no-commit-untracked-file/
repo-with-commit-no-files/
repo-with-commit-untracked-file/
EOF
test_cmp expect output
ok 2 - ls-files --others handles untracked git repositories
# passed all 2 test(s)
1..2
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3010-ls-files-killed-modified.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3010-ls-files-killed-modified/.git/
expecting success of 3010.1 'git update-index --add to add various paths.':
date >path0 &&
test_ln_s_add xyzzy path1 &&
mkdir path2 path3 pathx &&
date >path2/file2 &&
date >path3/file3 &&
>pathx/ju &&
: >path7 &&
date >path8 &&
: >path9 &&
date >path10 &&
git update-index --add -- path0 path?/file? pathx/ju path7 path8 path9 path10 &&
git init submod1 &&
git -C submod1 commit --allow-empty -m "empty 1" &&
git init submod2 &&
git -C submod2 commit --allow-empty -m "empty 2" &&
git update-index --add submod[12] &&
(
cd submod1 &&
git commit --allow-empty -m "empty 1 (updated)"
) &&
rm -fr path? # leave path10 alone
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
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3010-ls-files-killed-modified/submod1/.git/
[master (root-commit) 4da6488] empty 1
Author: A U Thor <author@example.com>
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3010-ls-files-killed-modified/submod2/.git/
[master (root-commit) 2720aba] empty 2
Author: A U Thor <author@example.com>
[master c92551b] empty 1 (updated)
Author: A U Thor <author@example.com>
ok 1 - git update-index --add to add various paths.
expecting success of 3010.2 'git ls-files -k to show killed files.':
date >path2 &&
if test_have_prereq SYMLINKS
then
ln -s frotz path3 &&
ln -s nitfol path5
else
date >path3 &&
date >path5
fi &&
mkdir -p path0 path1 path6 pathx/ju &&
date >path0/file0 &&
date >path1/file1 &&
date >path6/file6 &&
date >path7 &&
: >path8 &&
: >path9 &&
touch path10 &&
>pathx/ju/nk &&
cat >.expected <<-\EOF
path0/file0
path1/file1
path2
path3
pathx/ju/nk
EOF
ok 2 - git ls-files -k to show killed files.
expecting success of 3010.3 'git ls-files -k output (w/o icase)':
git ls-files -k >.output &&
test_cmp .expected .output
ok 3 - git ls-files -k output (w/o icase)
expecting success of 3010.4 'git ls-files -k output (w/ icase)':
git -c core.ignorecase=true ls-files -k >.output &&
test_cmp .expected .output
ok 4 - git ls-files -k output (w/ icase)
expecting success of 3010.5 'git ls-files -m to show modified files.':
git ls-files -m >.output
ok 5 - git ls-files -m to show modified files.
expecting success of 3010.6 'validate git ls-files -m output.':
cat >.expected <<-\EOF &&
path0
path1
path2/file2
path3/file3
path7
path8
pathx/ju
submod1
EOF
test_cmp .expected .output
ok 6 - validate git ls-files -m output.
# passed all 6 test(s)
1..6
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3012-ls-files-dedup.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3012-ls-files-dedup/.git/
expecting success of 3012.1 'setup':
>a.txt &&
>b.txt &&
>delete.txt &&
git add a.txt b.txt delete.txt &&
git commit -m base &&
echo a >a.txt &&
echo b >b.txt &&
echo delete >delete.txt &&
git add a.txt b.txt delete.txt &&
git commit -m tip &&
git tag tip &&
git reset --hard HEAD^ &&
echo change >a.txt &&
git commit -a -m side &&
git tag side
[master (root-commit) 211e5bc] base
Author: A U Thor <author@example.com>
3 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a.txt
create mode 100644 b.txt
create mode 100644 delete.txt
[master 8a0f78f] tip
Author: A U Thor <author@example.com>
3 files changed, 3 insertions(+)
HEAD is now at 211e5bc base
[master 692b228] side
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - setup
expecting success of 3012.2 'git ls-files --deduplicate to show unique unmerged path':
test_must_fail git merge tip &&
git ls-files --deduplicate >actual &&
cat >expect <<-\EOF &&
a.txt
b.txt
delete.txt
EOF
test_cmp expect actual &&
git merge --abort
Auto-merging a.txt
CONFLICT (content): Merge conflict in a.txt
Automatic merge failed; fix conflicts and then commit the result.
ok 2 - git ls-files --deduplicate to show unique unmerged path
expecting success of 3012.3 'git ls-files -d -m --deduplicate with different display options':
git reset --hard side &&
test_must_fail git merge tip &&
rm delete.txt &&
git ls-files -d -m --deduplicate >actual &&
cat >expect <<-\EOF &&
a.txt
delete.txt
EOF
test_cmp expect actual &&
git ls-files -d -m -t --deduplicate >actual &&
cat >expect <<-\EOF &&
C a.txt
C a.txt
C a.txt
R delete.txt
C delete.txt
EOF
test_cmp expect actual &&
git ls-files -d -m -c --deduplicate >actual &&
cat >expect <<-\EOF &&
a.txt
b.txt
delete.txt
EOF
test_cmp expect actual &&
git merge --abort
HEAD is now at 692b228 side
Auto-merging a.txt
CONFLICT (content): Merge conflict in a.txt
Automatic merge failed; fix conflicts and then commit the result.
ok 3 - git ls-files -d -m --deduplicate with different display options
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3011-common-prefixes-and-directory-traversal.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3011-common-prefixes-and-directory-traversal/.git/
expecting success of 3011.1 'setup':
test_commit hello &&
>empty &&
mkdir untracked_dir &&
>untracked_dir/empty &&
git init untracked_repo &&
>untracked_repo/empty &&
cat <<-EOF >.gitignore &&
ignored
an_ignored_dir/
EOF
mkdir an_ignored_dir &&
mkdir an_untracked_dir &&
>an_ignored_dir/ignored &&
>an_ignored_dir/untracked &&
>an_untracked_dir/ignored &&
>an_untracked_dir/untracked
[master (root-commit) 7dd16e1] hello
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 hello.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3011-common-prefixes-and-directory-traversal/untracked_repo/.git/
ok 1 - setup
expecting success of 3011.2 'git ls-files -o shows the right entries':
cat <<-EOF >expect &&
.gitignore
actual
an_ignored_dir/ignored
an_ignored_dir/untracked
an_untracked_dir/ignored
an_untracked_dir/untracked
empty
expect
untracked_dir/empty
untracked_repo/
EOF
git ls-files -o >actual &&
test_cmp expect actual
ok 2 - git ls-files -o shows the right entries
expecting success of 3011.3 'git ls-files -o --exclude-standard shows the right entries':
cat <<-EOF >expect &&
.gitignore
actual
an_untracked_dir/untracked
empty
expect
untracked_dir/empty
untracked_repo/
EOF
git ls-files -o --exclude-standard >actual &&
test_cmp expect actual
ok 3 - git ls-files -o --exclude-standard shows the right entries
expecting success of 3011.4 'git ls-files -o untracked_dir recurses':
echo untracked_dir/empty >expect &&
git ls-files -o untracked_dir >actual &&
test_cmp expect actual
ok 4 - git ls-files -o untracked_dir recurses
expecting success of 3011.5 'git ls-files -o untracked_dir/ recurses':
echo untracked_dir/empty >expect &&
git ls-files -o untracked_dir/ >actual &&
test_cmp expect actual
ok 5 - git ls-files -o untracked_dir/ recurses
expecting success of 3011.6 'git ls-files -o --directory untracked_dir does not recurse':
echo untracked_dir/ >expect &&
git ls-files -o --directory untracked_dir >actual &&
test_cmp expect actual
ok 6 - git ls-files -o --directory untracked_dir does not recurse
expecting success of 3011.7 'git ls-files -o --directory untracked_dir/ does not recurse':
echo untracked_dir/ >expect &&
git ls-files -o --directory untracked_dir/ >actual &&
test_cmp expect actual
ok 7 - git ls-files -o --directory untracked_dir/ does not recurse
expecting success of 3011.8 'git ls-files -o untracked_repo does not recurse':
echo untracked_repo/ >expect &&
git ls-files -o untracked_repo >actual &&
test_cmp expect actual
ok 8 - git ls-files -o untracked_repo does not recurse
expecting success of 3011.9 'git ls-files -o untracked_repo/ does not recurse':
echo untracked_repo/ >expect &&
git ls-files -o untracked_repo/ >actual &&
test_cmp expect actual
ok 9 - git ls-files -o untracked_repo/ does not recurse
expecting success of 3011.10 'git ls-files -o untracked_dir untracked_repo recurses into untracked_dir only':
cat <<-EOF >expect &&
untracked_dir/empty
untracked_repo/
EOF
git ls-files -o untracked_dir untracked_repo >actual &&
test_cmp expect actual
ok 10 - git ls-files -o untracked_dir untracked_repo recurses into untracked_dir only
expecting success of 3011.11 'git ls-files -o untracked_dir/ untracked_repo/ recurses into untracked_dir only':
cat <<-EOF >expect &&
untracked_dir/empty
untracked_repo/
EOF
git ls-files -o untracked_dir/ untracked_repo/ >actual &&
test_cmp expect actual
ok 11 - git ls-files -o untracked_dir/ untracked_repo/ recurses into untracked_dir only
expecting success of 3011.12 'git ls-files -o --directory untracked_dir untracked_repo does not recurse':
cat <<-EOF >expect &&
untracked_dir/
untracked_repo/
EOF
git ls-files -o --directory untracked_dir untracked_repo >actual &&
test_cmp expect actual
ok 12 - git ls-files -o --directory untracked_dir untracked_repo does not recurse
expecting success of 3011.13 'git ls-files -o --directory untracked_dir/ untracked_repo/ does not recurse':
cat <<-EOF >expect &&
untracked_dir/
untracked_repo/
EOF
git ls-files -o --directory untracked_dir/ untracked_repo/ >actual &&
test_cmp expect actual
ok 13 - git ls-files -o --directory untracked_dir/ untracked_repo/ does not recurse
expecting success of 3011.14 'git ls-files -o .git shows nothing':
git ls-files -o .git >actual &&
test_must_be_empty actual
ok 14 - git ls-files -o .git shows nothing
expecting success of 3011.15 'git ls-files -o .git/ shows nothing':
git ls-files -o .git/ >actual &&
test_must_be_empty actual
ok 15 - git ls-files -o .git/ shows nothing
checking prerequisite: FUNNYNAMES
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-FUNNYNAMES" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-FUNNYNAMES" &&
test_have_prereq !MINGW &&
touch -- \
"FUNNYNAMES tab embedded" \
"FUNNYNAMES \"quote embedded\"" \
"FUNNYNAMES newline
embedded" 2>/dev/null &&
rm -- \
"FUNNYNAMES tab embedded" \
"FUNNYNAMES \"quote embedded\"" \
"FUNNYNAMES newline
embedded" 2>/dev/null
)
prerequisite FUNNYNAMES ok
expecting success of 3011.16 'git ls-files -o untracked_* recurses appropriately':
mkdir "untracked_*" &&
>"untracked_*/empty" &&
cat <<-EOF >expect &&
untracked_*/empty
untracked_dir/empty
untracked_repo/
EOF
git ls-files -o "untracked_*" >actual &&
test_cmp expect actual
ok 16 - git ls-files -o untracked_* recurses appropriately
checking known breakage of 3011.17 'git ls-files -o untracked_*/ recurses appropriately':
cat <<-EOF >expect &&
untracked_*/empty
untracked_dir/empty
untracked_repo/
EOF
git ls-files -o "untracked_*/" >actual &&
test_cmp expect actual
--- expect 2023-09-16 19:12:35.696703299 +0000
+++ actual 2023-09-16 19:12:35.700703348 +0000
@@ -1,3 +1,2 @@
untracked_*/empty
-untracked_dir/empty
untracked_repo/
not ok 17 - git ls-files -o untracked_*/ recurses appropriately # TODO known breakage
expecting success of 3011.18 'git ls-files -o --directory untracked_* does not recurse':
cat <<-EOF >expect &&
untracked_*/
untracked_dir/
untracked_repo/
EOF
git ls-files -o --directory "untracked_*" >actual &&
test_cmp expect actual
ok 18 - git ls-files -o --directory untracked_* does not recurse
expecting success of 3011.19 'git ls-files -o --directory untracked_*/ does not recurse':
cat <<-EOF >expect &&
untracked_*/
untracked_dir/
untracked_repo/
EOF
git ls-files -o --directory "untracked_*/" >actual &&
test_cmp expect actual
ok 19 - git ls-files -o --directory untracked_*/ does not recurse
expecting success of 3011.20 'git ls-files -o consistent between one or two dirs':
git ls-files -o --exclude-standard an_ignored_dir/ an_untracked_dir/ >tmp &&
! grep ^an_ignored_dir/ tmp >expect &&
git ls-files -o --exclude-standard an_ignored_dir/ >actual &&
test_cmp expect actual
ok 20 - git ls-files -o consistent between one or two dirs
expecting success of 3011.21 'git status --ignored shows same files under dir with or without pathspec':
cat <<-EOF >expect &&
?? an_untracked_dir/
!! an_untracked_dir/ignored
EOF
git status --porcelain --ignored >output &&
grep an_untracked_dir output >expect &&
git status --porcelain --ignored an_untracked_dir/ >actual &&
test_cmp expect actual
ok 21 - git status --ignored shows same files under dir with or without pathspec
# still have 1 known breakage(s)
# passed all remaining 20 test(s)
1..21
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3013-ls-files-format.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3013-ls-files-format/.git/
expecting success of 3013.1 'usage: --format is incompatible with -s':
test_expect_code 129 git ls-files --format="%(objectname)" $flag
fatal: --format cannot be used with -s, -o, -k, -t, --resolve-undo, --deduplicate, --eol
usage: git ls-files [<options>] [<file>...]
-z separate paths with the NUL character
-t identify the file status with tags
-v use lowercase letters for 'assume unchanged' files
-f use lowercase letters for 'fsmonitor clean' files
-c, --cached show cached files in the output (default)
-d, --deleted show deleted files in the output
-m, --modified show modified files in the output
-o, --others show other files in the output
-i, --ignored show ignored files in the output
-s, --stage show staged contents' object name in the output
-k, --killed show files on the filesystem that need to be removed
--directory show 'other' directories' names only
--eol show line endings of files
--empty-directory don't show empty directories
-u, --unmerged show unmerged files in the output
--resolve-undo show resolve-undo information
-x, --exclude <pattern>
skip files matching pattern
-X, --exclude-from <file>
read exclude patterns from <file>
--exclude-per-directory <file>
read additional per-directory exclude patterns in <file>
--exclude-standard add the standard git exclusions
--full-name make the output relative to the project top directory
--recurse-submodules recurse through submodules
--error-unmatch if any <file> is not in the index, treat this as an error
--with-tree <tree-ish>
pretend that paths removed since <tree-ish> are still present
--abbrev[=<n>] use <n> digits to display object names
--debug show debugging data
--deduplicate suppress duplicate entries
--sparse show sparse directories in the presence of a sparse index
--format <format> format to use for the output
ok 1 - usage: --format is incompatible with -s
expecting success of 3013.2 'usage: --format is incompatible with -o':
test_expect_code 129 git ls-files --format="%(objectname)" $flag
fatal: --format cannot be used with -s, -o, -k, -t, --resolve-undo, --deduplicate, --eol
usage: git ls-files [<options>] [<file>...]
-z separate paths with the NUL character
-t identify the file status with tags
-v use lowercase letters for 'assume unchanged' files
-f use lowercase letters for 'fsmonitor clean' files
-c, --cached show cached files in the output (default)
-d, --deleted show deleted files in the output
-m, --modified show modified files in the output
-o, --others show other files in the output
-i, --ignored show ignored files in the output
-s, --stage show staged contents' object name in the output
-k, --killed show files on the filesystem that need to be removed
--directory show 'other' directories' names only
--eol show line endings of files
--empty-directory don't show empty directories
-u, --unmerged show unmerged files in the output
--resolve-undo show resolve-undo information
-x, --exclude <pattern>
skip files matching pattern
-X, --exclude-from <file>
read exclude patterns from <file>
--exclude-per-directory <file>
read additional per-directory exclude patterns in <file>
--exclude-standard add the standard git exclusions
--full-name make the output relative to the project top directory
--recurse-submodules recurse through submodules
--error-unmatch if any <file> is not in the index, treat this as an error
--with-tree <tree-ish>
pretend that paths removed since <tree-ish> are still present
--abbrev[=<n>] use <n> digits to display object names
--debug show debugging data
--deduplicate suppress duplicate entries
--sparse show sparse directories in the presence of a sparse index
--format <format> format to use for the output
ok 2 - usage: --format is incompatible with -o
expecting success of 3013.3 'usage: --format is incompatible with -k':
test_expect_code 129 git ls-files --format="%(objectname)" $flag
fatal: --format cannot be used with -s, -o, -k, -t, --resolve-undo, --deduplicate, --eol
usage: git ls-files [<options>] [<file>...]
-z separate paths with the NUL character
-t identify the file status with tags
-v use lowercase letters for 'assume unchanged' files
-f use lowercase letters for 'fsmonitor clean' files
-c, --cached show cached files in the output (default)
-d, --deleted show deleted files in the output
-m, --modified show modified files in the output
-o, --others show other files in the output
-i, --ignored show ignored files in the output
-s, --stage show staged contents' object name in the output
-k, --killed show files on the filesystem that need to be removed
--directory show 'other' directories' names only
--eol show line endings of files
--empty-directory don't show empty directories
-u, --unmerged show unmerged files in the output
--resolve-undo show resolve-undo information
-x, --exclude <pattern>
skip files matching pattern
-X, --exclude-from <file>
read exclude patterns from <file>
--exclude-per-directory <file>
read additional per-directory exclude patterns in <file>
--exclude-standard add the standard git exclusions
--full-name make the output relative to the project top directory
--recurse-submodules recurse through submodules
--error-unmatch if any <file> is not in the index, treat this as an error
--with-tree <tree-ish>
pretend that paths removed since <tree-ish> are still present
--abbrev[=<n>] use <n> digits to display object names
--debug show debugging data
--deduplicate suppress duplicate entries
--sparse show sparse directories in the presence of a sparse index
--format <format> format to use for the output
ok 3 - usage: --format is incompatible with -k
expecting success of 3013.4 'usage: --format is incompatible with -t':
test_expect_code 129 git ls-files --format="%(objectname)" $flag
fatal: --format cannot be used with -s, -o, -k, -t, --resolve-undo, --deduplicate, --eol
usage: git ls-files [<options>] [<file>...]
-z separate paths with the NUL character
-t identify the file status with tags
-v use lowercase letters for 'assume unchanged' files
-f use lowercase letters for 'fsmonitor clean' files
-c, --cached show cached files in the output (default)
-d, --deleted show deleted files in the output
-m, --modified show modified files in the output
-o, --others show other files in the output
-i, --ignored show ignored files in the output
-s, --stage show staged contents' object name in the output
-k, --killed show files on the filesystem that need to be removed
--directory show 'other' directories' names only
--eol show line endings of files
--empty-directory don't show empty directories
-u, --unmerged show unmerged files in the output
--resolve-undo show resolve-undo information
-x, --exclude <pattern>
skip files matching pattern
-X, --exclude-from <file>
read exclude patterns from <file>
--exclude-per-directory <file>
read additional per-directory exclude patterns in <file>
--exclude-standard add the standard git exclusions
--full-name make the output relative to the project top directory
--recurse-submodules recurse through submodules
--error-unmatch if any <file> is not in the index, treat this as an error
--with-tree <tree-ish>
pretend that paths removed since <tree-ish> are still present
--abbrev[=<n>] use <n> digits to display object names
--debug show debugging data
--deduplicate suppress duplicate entries
--sparse show sparse directories in the presence of a sparse index
--format <format> format to use for the output
ok 4 - usage: --format is incompatible with -t
expecting success of 3013.5 'usage: --format is incompatible with --resolve-undo':
test_expect_code 129 git ls-files --format="%(objectname)" $flag
fatal: --format cannot be used with -s, -o, -k, -t, --resolve-undo, --deduplicate, --eol
usage: git ls-files [<options>] [<file>...]
-z separate paths with the NUL character
-t identify the file status with tags
-v use lowercase letters for 'assume unchanged' files
-f use lowercase letters for 'fsmonitor clean' files
-c, --cached show cached files in the output (default)
-d, --deleted show deleted files in the output
-m, --modified show modified files in the output
-o, --others show other files in the output
-i, --ignored show ignored files in the output
-s, --stage show staged contents' object name in the output
-k, --killed show files on the filesystem that need to be removed
--directory show 'other' directories' names only
--eol show line endings of files
--empty-directory don't show empty directories
-u, --unmerged show unmerged files in the output
--resolve-undo show resolve-undo information
-x, --exclude <pattern>
skip files matching pattern
-X, --exclude-from <file>
read exclude patterns from <file>
--exclude-per-directory <file>
read additional per-directory exclude patterns in <file>
--exclude-standard add the standard git exclusions
--full-name make the output relative to the project top directory
--recurse-submodules recurse through submodules
--error-unmatch if any <file> is not in the index, treat this as an error
--with-tree <tree-ish>
pretend that paths removed since <tree-ish> are still present
--abbrev[=<n>] use <n> digits to display object names
--debug show debugging data
--deduplicate suppress duplicate entries
--sparse show sparse directories in the presence of a sparse index
--format <format> format to use for the output
ok 5 - usage: --format is incompatible with --resolve-undo
expecting success of 3013.6 'usage: --format is incompatible with --deduplicate':
test_expect_code 129 git ls-files --format="%(objectname)" $flag
fatal: --format cannot be used with -s, -o, -k, -t, --resolve-undo, --deduplicate, --eol
usage: git ls-files [<options>] [<file>...]
-z separate paths with the NUL character
-t identify the file status with tags
-v use lowercase letters for 'assume unchanged' files
-f use lowercase letters for 'fsmonitor clean' files
-c, --cached show cached files in the output (default)
-d, --deleted show deleted files in the output
-m, --modified show modified files in the output
-o, --others show other files in the output
-i, --ignored show ignored files in the output
-s, --stage show staged contents' object name in the output
-k, --killed show files on the filesystem that need to be removed
--directory show 'other' directories' names only
--eol show line endings of files
--empty-directory don't show empty directories
-u, --unmerged show unmerged files in the output
--resolve-undo show resolve-undo information
-x, --exclude <pattern>
skip files matching pattern
-X, --exclude-from <file>
read exclude patterns from <file>
--exclude-per-directory <file>
read additional per-directory exclude patterns in <file>
--exclude-standard add the standard git exclusions
--full-name make the output relative to the project top directory
--recurse-submodules recurse through submodules
--error-unmatch if any <file> is not in the index, treat this as an error
--with-tree <tree-ish>
pretend that paths removed since <tree-ish> are still present
--abbrev[=<n>] use <n> digits to display object names
--debug show debugging data
--deduplicate suppress duplicate entries
--sparse show sparse directories in the presence of a sparse index
--format <format> format to use for the output
ok 6 - usage: --format is incompatible with --deduplicate
expecting success of 3013.7 'usage: --format is incompatible with --eol':
test_expect_code 129 git ls-files --format="%(objectname)" $flag
fatal: --format cannot be used with -s, -o, -k, -t, --resolve-undo, --deduplicate, --eol
usage: git ls-files [<options>] [<file>...]
-z separate paths with the NUL character
-t identify the file status with tags
-v use lowercase letters for 'assume unchanged' files
-f use lowercase letters for 'fsmonitor clean' files
-c, --cached show cached files in the output (default)
-d, --deleted show deleted files in the output
-m, --modified show modified files in the output
-o, --others show other files in the output
-i, --ignored show ignored files in the output
-s, --stage show staged contents' object name in the output
-k, --killed show files on the filesystem that need to be removed
--directory show 'other' directories' names only
--eol show line endings of files
--empty-directory don't show empty directories
-u, --unmerged show unmerged files in the output
--resolve-undo show resolve-undo information
-x, --exclude <pattern>
skip files matching pattern
-X, --exclude-from <file>
read exclude patterns from <file>
--exclude-per-directory <file>
read additional per-directory exclude patterns in <file>
--exclude-standard add the standard git exclusions
--full-name make the output relative to the project top directory
--recurse-submodules recurse through submodules
--error-unmatch if any <file> is not in the index, treat this as an error
--with-tree <tree-ish>
pretend that paths removed since <tree-ish> are still present
--abbrev[=<n>] use <n> digits to display object names
--debug show debugging data
--deduplicate suppress duplicate entries
--sparse show sparse directories in the presence of a sparse index
--format <format> format to use for the output
ok 7 - usage: --format is incompatible with --eol
expecting success of 3013.8 'setup':
printf "LINEONE\nLINETWO\nLINETHREE\n" >o1.txt &&
printf "LINEONE\r\nLINETWO\r\nLINETHREE\r\n" >o2.txt &&
printf "LINEONE\r\nLINETWO\nLINETHREE\n" >o3.txt &&
git add o?.txt &&
oid=$(git hash-object o1.txt) &&
git update-index --add --cacheinfo 120000 $oid o4.txt &&
git update-index --add --cacheinfo 160000 $oid o5.txt &&
git update-index --add --cacheinfo 100755 $oid o6.txt &&
git commit -m base
[master (root-commit) 8422806] base
Author: A U Thor <author@example.com>
6 files changed, 16 insertions(+)
create mode 100644 o1.txt
create mode 100644 o2.txt
create mode 100644 o3.txt
create mode 120000 o4.txt
create mode 160000 o5.txt
create mode 100755 o6.txt
ok 8 - setup
expecting success of 3013.9 'git ls-files --format objectmode v.s. -s':
git ls-files -s >files &&
cut -d" " -f1 files >expect &&
git ls-files --format="%(objectmode)" >actual &&
test_cmp expect actual
ok 9 - git ls-files --format objectmode v.s. -s
expecting success of 3013.10 'git ls-files --format objectname v.s. -s':
git ls-files -s >files &&
cut -d" " -f2 files >expect &&
git ls-files --format="%(objectname)" >actual &&
test_cmp expect actual
ok 10 - git ls-files --format objectname v.s. -s
expecting success of 3013.11 'git ls-files --format v.s. --eol':
git ls-files --eol >tmp &&
sed -e "s/ / /g" -e "s/ */ /g" tmp >expect 2>err &&
test_must_be_empty err &&
git ls-files --format="i/%(eolinfo:index) w/%(eolinfo:worktree) attr/%(eolattr) %(path)" >actual 2>err &&
test_must_be_empty err &&
test_cmp expect actual
ok 11 - git ls-files --format v.s. --eol
expecting success of 3013.12 'git ls-files --format path v.s. -s':
git ls-files -s >files &&
cut -f2 files >expect &&
git ls-files --format="%(path)" >actual &&
test_cmp expect actual
ok 12 - git ls-files --format path v.s. -s
expecting success of 3013.13 'git ls-files --format with -m':
echo change >o1.txt &&
cat >expect <<-\EOF &&
o1.txt
o4.txt
o5.txt
o6.txt
EOF
git ls-files --format="%(path)" -m >actual &&
test_cmp expect actual
ok 13 - git ls-files --format with -m
expecting success of 3013.14 'git ls-files --format with -d':
echo o7 >o7.txt &&
git add o7.txt &&
rm o7.txt &&
cat >expect <<-\EOF &&
o4.txt
o5.txt
o6.txt
o7.txt
EOF
git ls-files --format="%(path)" -d >actual &&
test_cmp expect actual
ok 14 - git ls-files --format with -d
expecting success of 3013.15 'git ls-files --format v.s -s':
git ls-files --stage >expect &&
git ls-files --format="%(objectmode) %(objectname) %(stage)%x09%(path)" >actual &&
test_cmp expect actual
ok 15 - git ls-files --format v.s -s
expecting success of 3013.16 'git ls-files --format with --debug':
git ls-files --debug >expect &&
git ls-files --format="%(path)" --debug >actual &&
test_cmp expect actual
ok 16 - git ls-files --format with --debug
# passed all 16 test(s)
1..16
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3020-ls-files-error-unmatch.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3020-ls-files-error-unmatch/.git/
expecting success of 3020.1 'setup':
touch foo bar &&
git update-index --add foo bar &&
git commit -m "add foo bar"
[master (root-commit) 6c59e8c] add foo bar
Author: A U Thor <author@example.com>
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 bar
create mode 100644 foo
ok 1 - setup
expecting success of 3020.2 'git ls-files --error-unmatch should fail with unmatched path.':
test_must_fail git ls-files --error-unmatch foo bar-does-not-match
error: pathspec 'bar-does-not-match' did not match any file(s) known to git
Did you forget to 'git add'?
foo
ok 2 - git ls-files --error-unmatch should fail with unmatched path.
expecting success of 3020.3 'git ls-files --error-unmatch should succeed with matched paths.':
git ls-files --error-unmatch foo bar
bar
foo
ok 3 - git ls-files --error-unmatch should succeed with matched paths.
# passed all 3 test(s)
1..3
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3007-ls-files-recurse-submodules.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3007-ls-files-recurse-submodules/.git/
expecting success of 3007.1 'setup directory structure and submodules':
echo a >a &&
mkdir b &&
echo b >b/b &&
git add a b &&
git commit -m "add a and b" &&
git init submodule &&
echo c >submodule/c &&
git -C submodule add c &&
git -C submodule commit -m "add c" &&
git submodule add ./submodule &&
git commit -m "added submodule"
[master (root-commit) f320cab] add a and b
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 a
create mode 100644 b/b
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3007-ls-files-recurse-submodules/submodule/.git/
[master (root-commit) 3281629] add c
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 c
Adding existing repo at 'submodule' to the index
[master 14616f7] added submodule
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 submodule
ok 1 - setup directory structure and submodules
expecting success of 3007.2 'ls-files correctly outputs files in submodule':
cat >expect <<-\EOF &&
.gitmodules
a
b/b
submodule/c
EOF
git ls-files --recurse-submodules >actual &&
test_cmp expect actual
ok 2 - ls-files correctly outputs files in submodule
expecting success of 3007.3 '--stage':
GITMODULES_HASH=$(git rev-parse HEAD:.gitmodules) &&
A_HASH=$(git rev-parse HEAD:a) &&
B_HASH=$(git rev-parse HEAD:b/b) &&
C_HASH=$(git -C submodule rev-parse HEAD:c) &&
cat >expect <<-EOF &&
100644 $GITMODULES_HASH 0 .gitmodules
100644 $A_HASH 0 a
100644 $B_HASH 0 b/b
100644 $C_HASH 0 submodule/c
EOF
git ls-files --stage --recurse-submodules >actual &&
test_cmp expect actual
ok 3 - --stage
expecting success of 3007.4 'ls-files correctly outputs files in submodule with -z':
lf_to_nul >expect <<-\EOF &&
.gitmodules
a
b/b
submodule/c
EOF
git ls-files --recurse-submodules -z >actual &&
test_cmp expect actual
ok 4 - ls-files correctly outputs files in submodule with -z
expecting success of 3007.5 'ls-files does not output files not added to a repo':
cat >expect <<-\EOF &&
.gitmodules
a
b/b
submodule/c
EOF
echo a >not_added &&
echo b >b/not_added &&
echo c >submodule/not_added &&
git ls-files --recurse-submodules >actual &&
test_cmp expect actual
ok 5 - ls-files does not output files not added to a repo
expecting success of 3007.6 'ls-files recurses more than 1 level':
cat >expect <<-\EOF &&
.gitmodules
a
b/b
submodule/.gitmodules
submodule/c
submodule/subsub/d
EOF
git init submodule/subsub &&
echo d >submodule/subsub/d &&
git -C submodule/subsub add d &&
git -C submodule/subsub commit -m "add d" &&
git -C submodule submodule add ./subsub &&
git -C submodule commit -m "added subsub" &&
git submodule absorbgitdirs &&
git ls-files --recurse-submodules >actual &&
test_cmp expect actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3007-ls-files-recurse-submodules/submodule/subsub/.git/
[master (root-commit) 0cb03c9] add d
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 d
Adding existing repo at 'subsub' to the index
[master 83d4bc1] added subsub
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 subsub
Migrating git directory of 'submodule' from
'/<<PKGBUILDDIR>>/t/trash directory.t3007-ls-files-recurse-submodules/submodule/.git' to
'/<<PKGBUILDDIR>>/t/trash directory.t3007-ls-files-recurse-submodules/.git/modules/submodule'
Migrating git directory of 'submodule/subsub' from
'/<<PKGBUILDDIR>>/t/trash directory.t3007-ls-files-recurse-submodules/submodule/subsub/.git' to
'/<<PKGBUILDDIR>>/t/trash directory.t3007-ls-files-recurse-submodules/.git/modules/submodule/modules/subsub'
ok 6 - ls-files recurses more than 1 level
expecting success of 3007.7 'ls-files works with GIT_DIR':
cat >expect <<-\EOF &&
.gitmodules
c
subsub/d
EOF
git --git-dir=submodule/.git ls-files --recurse-submodules >actual &&
test_cmp expect actual
ok 7 - ls-files works with GIT_DIR
expecting success of 3007.8 '--recurse-submodules and pathspecs setup':
echo e >submodule/subsub/e.txt &&
git -C submodule/subsub add e.txt &&
git -C submodule/subsub commit -m "adding e.txt" &&
echo f >submodule/f.TXT &&
echo g >submodule/g.txt &&
git -C submodule add f.TXT g.txt &&
git -C submodule commit -m "add f and g" &&
echo h >h.txt &&
mkdir sib &&
echo sib >sib/file &&
git add h.txt sib/file &&
git commit -m "add h and sib/file" &&
git init sub &&
echo sub >sub/file &&
git -C sub add file &&
git -C sub commit -m "add file" &&
git submodule add ./sub &&
git commit -m "added sub" &&
cat >expect <<-\EOF &&
.gitmodules
a
b/b
h.txt
sib/file
sub/file
submodule/.gitmodules
submodule/c
submodule/f.TXT
submodule/g.txt
submodule/subsub/d
submodule/subsub/e.txt
EOF
git ls-files --recurse-submodules >actual &&
test_cmp expect actual &&
git ls-files --recurse-submodules "*" >actual &&
test_cmp expect actual
[master 562fffb] adding e.txt
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 e.txt
[master f284b88] add f and g
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 f.TXT
create mode 100644 g.txt
[master ad13f14] add h and sib/file
Author: A U Thor <author@example.com>
2 files changed, 2 insertions(+)
create mode 100644 h.txt
create mode 100644 sib/file
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3007-ls-files-recurse-submodules/sub/.git/
[master (root-commit) e443189] add file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
Adding existing repo at 'sub' to the index
[master 4a68fc6] added sub
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 160000 sub
ok 8 - --recurse-submodules and pathspecs setup
expecting success of 3007.9 'inactive submodule':
test_when_finished "git config --bool submodule.submodule.active true" &&
test_when_finished "git -C submodule config --bool submodule.subsub.active true" &&
git config --bool submodule.submodule.active "false" &&
cat >expect <<-\EOF &&
.gitmodules
a
b/b
h.txt
sib/file
sub/file
submodule
EOF
git ls-files --recurse-submodules >actual &&
test_cmp expect actual &&
git config --bool submodule.submodule.active "true" &&
git -C submodule config --bool submodule.subsub.active "false" &&
cat >expect <<-\EOF &&
.gitmodules
a
b/b
h.txt
sib/file
sub/file
submodule/.gitmodules
submodule/c
submodule/f.TXT
submodule/g.txt
submodule/subsub
EOF
git ls-files --recurse-submodules >actual &&
test_cmp expect actual
ok 9 - inactive submodule
expecting success of 3007.10 '--recurse-submodules and pathspecs':
cat >expect <<-\EOF &&
h.txt
submodule/g.txt
submodule/subsub/e.txt
EOF
git ls-files --recurse-submodules "*.txt" >actual &&
test_cmp expect actual
ok 10 - --recurse-submodules and pathspecs
expecting success of 3007.11 '--recurse-submodules and pathspecs':
cat >expect <<-\EOF &&
h.txt
submodule/f.TXT
submodule/g.txt
submodule/subsub/e.txt
EOF
git ls-files --recurse-submodules ":(icase)*.txt" >actual &&
test_cmp expect actual
ok 11 - --recurse-submodules and pathspecs
expecting success of 3007.12 '--recurse-submodules and pathspecs':
cat >expect <<-\EOF &&
h.txt
submodule/f.TXT
submodule/g.txt
EOF
git ls-files --recurse-submodules ":(icase)*.txt" ":(exclude)submodule/subsub/*" >actual &&
test_cmp expect actual
ok 12 - --recurse-submodules and pathspecs
expecting success of 3007.13 '--recurse-submodules and pathspecs':
cat >expect <<-\EOF &&
sub/file
EOF
git ls-files --recurse-submodules "sub" >actual &&
test_cmp expect actual &&
git ls-files --recurse-submodules "sub/" >actual &&
test_cmp expect actual &&
git ls-files --recurse-submodules "sub/file" >actual &&
test_cmp expect actual &&
git ls-files --recurse-submodules "su*/file" >actual &&
test_cmp expect actual &&
git ls-files --recurse-submodules "su?/file" >actual &&
test_cmp expect actual
ok 13 - --recurse-submodules and pathspecs
expecting success of 3007.14 '--recurse-submodules and pathspecs':
cat >expect <<-\EOF &&
sib/file
sub/file
EOF
git ls-files --recurse-submodules "s??/file" >actual &&
test_cmp expect actual &&
git ls-files --recurse-submodules "s???file" >actual &&
test_cmp expect actual &&
git ls-files --recurse-submodules "s*file" >actual &&
test_cmp expect actual
ok 14 - --recurse-submodules and pathspecs
expecting success of 3007.15 '--recurse-submodules and relative paths':
# From subdir
cat >expect <<-\EOF &&
b
EOF
git -C b ls-files --recurse-submodules >actual &&
test_cmp expect actual &&
# Relative path to top
cat >expect <<-\EOF &&
../.gitmodules
../a
b
../h.txt
../sib/file
../sub/file
../submodule/.gitmodules
../submodule/c
../submodule/f.TXT
../submodule/g.txt
../submodule/subsub/d
../submodule/subsub/e.txt
EOF
git -C b ls-files --recurse-submodules -- .. >actual &&
test_cmp expect actual &&
# Relative path to submodule
cat >expect <<-\EOF &&
../submodule/.gitmodules
../submodule/c
../submodule/f.TXT
../submodule/g.txt
../submodule/subsub/d
../submodule/subsub/e.txt
EOF
git -C b ls-files --recurse-submodules -- ../submodule >actual &&
test_cmp expect actual
ok 15 - --recurse-submodules and relative paths
expecting success of 3007.16 '--recurse-submodules does not support --error-unmatch':
test_must_fail git ls-files --recurse-submodules --error-unmatch 2>actual &&
test_i18ngrep "does not support --error-unmatch" actual
fatal: ls-files --recurse-submodules does not support --error-unmatch
ok 16 - --recurse-submodules does not support --error-unmatch
expecting success of 3007.17 '--recurse-submodules and --deleted are incompatible':
test_must_fail git ls-files --recurse-submodules --deleted 2>actual &&
test_i18ngrep 'unsupported mode' actual
fatal: ls-files --recurse-submodules unsupported mode
ok 17 - --recurse-submodules and --deleted are incompatible
expecting success of 3007.18 '--recurse-submodules and --modified are incompatible':
test_must_fail git ls-files --recurse-submodules --modified 2>actual &&
test_i18ngrep 'unsupported mode' actual
fatal: ls-files --recurse-submodules unsupported mode
ok 18 - --recurse-submodules and --modified are incompatible
expecting success of 3007.19 '--recurse-submodules and --others are incompatible':
test_must_fail git ls-files --recurse-submodules --others 2>actual &&
test_i18ngrep 'unsupported mode' actual
fatal: ls-files --recurse-submodules unsupported mode
ok 19 - --recurse-submodules and --others are incompatible
expecting success of 3007.20 '--recurse-submodules and --killed are incompatible':
test_must_fail git ls-files --recurse-submodules --killed 2>actual &&
test_i18ngrep 'unsupported mode' actual
fatal: ls-files --recurse-submodules unsupported mode
ok 20 - --recurse-submodules and --killed are incompatible
expecting success of 3007.21 '--recurse-submodules and --unmerged are incompatible':
test_must_fail git ls-files --recurse-submodules --unmerged 2>actual &&
test_i18ngrep 'unsupported mode' actual
fatal: ls-files --recurse-submodules unsupported mode
ok 21 - --recurse-submodules and --unmerged are incompatible
# passed all 21 test(s)
1..21
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3040-subprojects-basic.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3040-subprojects-basic/.git/
expecting success of 3040.1 'setup: create superproject':
: >Makefile &&
git add Makefile &&
git commit -m "Superproject created"
[master (root-commit) 0075abc] Superproject created
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 Makefile
ok 1 - setup: create superproject
expecting success of 3040.2 'setup: create subprojects':
mkdir sub1 &&
( cd sub1 && git init && : >Makefile && git add * &&
git commit -q -m "subproject 1" ) &&
mkdir sub2 &&
( cd sub2 && git init && : >Makefile && git add * &&
git commit -q -m "subproject 2" ) &&
git update-index --add sub1 &&
git add sub2 &&
git commit -q -m "subprojects added" &&
GIT_PRINT_SHA1_ELLIPSIS="yes" git diff-tree --abbrev=5 HEAD^ HEAD |cut -d" " -f-3,5- >current &&
git branch save HEAD &&
cat >expected <<-\EOF &&
:000000 160000 00000... A sub1
:000000 160000 00000... A sub2
EOF
test_cmp expected current
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3040-subprojects-basic/sub1/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3040-subprojects-basic/sub2/.git/
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 <url> 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.
ok 2 - setup: create subprojects
expecting success of 3040.3 'check if fsck ignores the subprojects':
git fsck --full
ok 3 - check if fsck ignores the subprojects
expecting success of 3040.4 'check if commit in a subproject detected':
( cd sub1 &&
echo "all:" >>Makefile &&
echo " true" >>Makefile &&
git commit -q -a -m "make all" ) &&
test_expect_code 1 git diff-files --exit-code
:160000 160000 1220b9f3ace6404f5c782bba5e262aaaf38310fb 0000000000000000000000000000000000000000 M sub1
ok 4 - check if commit in a subproject detected
expecting success of 3040.5 'check if a changed subproject HEAD can be committed':
git commit -q -a -m "sub1 changed" &&
test_expect_code 1 git diff-tree --exit-code HEAD^ HEAD
:160000 160000 1220b9f3ace6404f5c782bba5e262aaaf38310fb 487e23047a2a8ed2c84b1478b3e52375e3ae3334 M sub1
ok 5 - check if a changed subproject HEAD can be committed
expecting success of 3040.6 'check if diff-index works for subproject elements':
test_expect_code 1 git diff-index --exit-code --cached save -- sub1
:160000 160000 1220b9f3ace6404f5c782bba5e262aaaf38310fb 487e23047a2a8ed2c84b1478b3e52375e3ae3334 M sub1
ok 6 - check if diff-index works for subproject elements
expecting success of 3040.7 'check if diff-tree works for subproject elements':
test_expect_code 1 git diff-tree --exit-code HEAD^ HEAD -- sub1
:160000 160000 1220b9f3ace6404f5c782bba5e262aaaf38310fb 487e23047a2a8ed2c84b1478b3e52375e3ae3334 M sub1
ok 7 - check if diff-tree works for subproject elements
expecting success of 3040.8 'check if git diff works for subproject elements':
test_expect_code 1 git diff --exit-code HEAD^ HEAD
diff --git a/sub1 b/sub1
index 1220b9f..487e230 160000
--- a/sub1
+++ b/sub1
@@ -1 +1 @@
-Subproject commit 1220b9f3ace6404f5c782bba5e262aaaf38310fb
+Subproject commit 487e23047a2a8ed2c84b1478b3e52375e3ae3334
ok 8 - check if git diff works for subproject elements
expecting success of 3040.9 'check if clone works':
git ls-files -s >expected &&
git clone -l -s . cloned &&
( cd cloned && git ls-files -s ) >current &&
test_cmp expected current
Cloning into 'cloned'...
done.
ok 9 - check if clone works
expecting success of 3040.10 'removing and adding subproject':
git update-index --force-remove -- sub2 &&
mv sub2 sub3 &&
git add sub3 &&
git commit -q -m "renaming a subproject" &&
test_expect_code 1 git diff -M --name-status --exit-code HEAD^ HEAD
warning: adding embedded git repository: sub3
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 <url> sub3
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached sub3
hint:
hint: See "git help submodule" for more information.
R100 sub2 sub3
ok 10 - removing and adding subproject
expecting success of 3040.11 'checkout in superproject':
git checkout save &&
git diff-index --exit-code --raw --cached save -- sub1
warning: unable to rmdir 'sub3': Directory not empty
Switched to branch 'save'
M sub1
ok 11 - checkout in superproject
# passed all 11 test(s)
1..11
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3050-subprojects-fetch.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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"
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3050-subprojects-fetch/sub/.git/
[master (root-commit) 4c0c877] subproject commit #1
Author: A U Thor <author@example.com>
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 <url> 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 <author@example.com>
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 <author@example.com>
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
From file:///<<PKGBUILDDIR>>/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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3060-ls-files-with-tree.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3060-ls-files-with-tree/.git/
expecting success of 3060.1 'setup':
# The bug we are exercising requires a fair number of entries
# in a sub-directory so that add_index_entry will trigger a
# realloc.
echo file >expected &&
mkdir sub &&
for n in 0 1 2 3 4 5
do
for m in 0 1 2 3 4 5 6 7 8 9
do
num=00$n$m &&
>sub/file-$num &&
echo file-$num >>expected ||
return 1
done
done &&
git add . &&
git commit -m "add a bunch of files" &&
# We remove them all so that we will have something to add
# back with --with-tree and so that we will definitely be
# under the realloc size to trigger the bug.
rm -rf sub &&
git commit -a -m "remove them all" &&
# The bug also requires some entry before our directory so that
# prune_path will modify the_index.cache
mkdir a_directory_that_sorts_before_sub &&
>a_directory_that_sorts_before_sub/file &&
mkdir sub &&
>sub/file &&
git add .
[master (root-commit) 853a03d] add a bunch of files
Author: A U Thor <author@example.com>
61 files changed, 61 insertions(+)
create mode 100644 expected
create mode 100644 sub/file-0000
create mode 100644 sub/file-0001
create mode 100644 sub/file-0002
create mode 100644 sub/file-0003
create mode 100644 sub/file-0004
create mode 100644 sub/file-0005
create mode 100644 sub/file-0006
create mode 100644 sub/file-0007
create mode 100644 sub/file-0008
create mode 100644 sub/file-0009
create mode 100644 sub/file-0010
create mode 100644 sub/file-0011
create mode 100644 sub/file-0012
create mode 100644 sub/file-0013
create mode 100644 sub/file-0014
create mode 100644 sub/file-0015
create mode 100644 sub/file-0016
create mode 100644 sub/file-0017
create mode 100644 sub/file-0018
create mode 100644 sub/file-0019
create mode 100644 sub/file-0020
create mode 100644 sub/file-0021
create mode 100644 sub/file-0022
create mode 100644 sub/file-0023
create mode 100644 sub/file-0024
create mode 100644 sub/file-0025
create mode 100644 sub/file-0026
create mode 100644 sub/file-0027
create mode 100644 sub/file-0028
create mode 100644 sub/file-0029
create mode 100644 sub/file-0030
create mode 100644 sub/file-0031
create mode 100644 sub/file-0032
create mode 100644 sub/file-0033
create mode 100644 sub/file-0034
create mode 100644 sub/file-0035
create mode 100644 sub/file-0036
create mode 100644 sub/file-0037
create mode 100644 sub/file-0038
create mode 100644 sub/file-0039
create mode 100644 sub/file-0040
create mode 100644 sub/file-0041
create mode 100644 sub/file-0042
create mode 100644 sub/file-0043
create mode 100644 sub/file-0044
create mode 100644 sub/file-0045
create mode 100644 sub/file-0046
create mode 100644 sub/file-0047
create mode 100644 sub/file-0048
create mode 100644 sub/file-0049
create mode 100644 sub/file-0050
create mode 100644 sub/file-0051
create mode 100644 sub/file-0052
create mode 100644 sub/file-0053
create mode 100644 sub/file-0054
create mode 100644 sub/file-0055
create mode 100644 sub/file-0056
create mode 100644 sub/file-0057
create mode 100644 sub/file-0058
create mode 100644 sub/file-0059
[master 80af29e] remove them all
Author: A U Thor <author@example.com>
60 files changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 sub/file-0000
delete mode 100644 sub/file-0001
delete mode 100644 sub/file-0002
delete mode 100644 sub/file-0003
delete mode 100644 sub/file-0004
delete mode 100644 sub/file-0005
delete mode 100644 sub/file-0006
delete mode 100644 sub/file-0007
delete mode 100644 sub/file-0008
delete mode 100644 sub/file-0009
delete mode 100644 sub/file-0010
delete mode 100644 sub/file-0011
delete mode 100644 sub/file-0012
delete mode 100644 sub/file-0013
delete mode 100644 sub/file-0014
delete mode 100644 sub/file-0015
delete mode 100644 sub/file-0016
delete mode 100644 sub/file-0017
delete mode 100644 sub/file-0018
delete mode 100644 sub/file-0019
delete mode 100644 sub/file-0020
delete mode 100644 sub/file-0021
delete mode 100644 sub/file-0022
delete mode 100644 sub/file-0023
delete mode 100644 sub/file-0024
delete mode 100644 sub/file-0025
delete mode 100644 sub/file-0026
delete mode 100644 sub/file-0027
delete mode 100644 sub/file-0028
delete mode 100644 sub/file-0029
delete mode 100644 sub/file-0030
delete mode 100644 sub/file-0031
delete mode 100644 sub/file-0032
delete mode 100644 sub/file-0033
delete mode 100644 sub/file-0034
delete mode 100644 sub/file-0035
delete mode 100644 sub/file-0036
delete mode 100644 sub/file-0037
delete mode 100644 sub/file-0038
delete mode 100644 sub/file-0039
delete mode 100644 sub/file-0040
delete mode 100644 sub/file-0041
delete mode 100644 sub/file-0042
delete mode 100644 sub/file-0043
delete mode 100644 sub/file-0044
delete mode 100644 sub/file-0045
delete mode 100644 sub/file-0046
delete mode 100644 sub/file-0047
delete mode 100644 sub/file-0048
delete mode 100644 sub/file-0049
delete mode 100644 sub/file-0050
delete mode 100644 sub/file-0051
delete mode 100644 sub/file-0052
delete mode 100644 sub/file-0053
delete mode 100644 sub/file-0054
delete mode 100644 sub/file-0055
delete mode 100644 sub/file-0056
delete mode 100644 sub/file-0057
delete mode 100644 sub/file-0058
delete mode 100644 sub/file-0059
ok 1 - setup
expecting success of 3060.2 'usage':
test_expect_code 128 git ls-files --with-tree=HEAD -u &&
test_expect_code 128 git ls-files --with-tree=HEAD -s &&
test_expect_code 128 git ls-files --recurse-submodules --with-tree=HEAD
fatal: options 'ls-files --with-tree' and '-s/-u' cannot be used together
fatal: options 'ls-files --with-tree' and '-s/-u' cannot be used together
fatal: ls-files --recurse-submodules unsupported mode
ok 2 - usage
expecting success of 3060.3 'git ls-files --with-tree should succeed from subdir':
# We have to run from a sub-directory to trigger prune_path
# Then we finally get to run our --with-tree test
(
cd sub &&
git ls-files --with-tree=HEAD~1 >../output
)
ok 3 - git ls-files --with-tree should succeed from subdir
expecting success of 3060.4 'git ls-files --with-tree should add entries from named tree.':
test_cmp expected output
ok 4 - git ls-files --with-tree should add entries from named tree.
expecting success of 3060.5 'no duplicates in --with-tree output':
git ls-files --with-tree=HEAD >actual &&
sort -u actual >expected &&
test_cmp expected actual
ok 5 - no duplicates in --with-tree output
expecting success of 3060.6 'setup: output in a conflict':
test_create_repo conflict &&
test_commit -C conflict BASE file &&
test_commit -C conflict A file foo &&
git -C conflict reset --hard BASE &&
test_commit -C conflict B file bar
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3060-ls-files-with-tree/conflict/.git/
[master (root-commit) 7955b49] BASE
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
[master 67d38f3] A
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
HEAD is now at 7955b49 BASE
[master f8636b1] B
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 6 - setup: output in a conflict
expecting success of 3060.7 'output in a conflict':
test_must_fail git -C conflict merge A B &&
cat >expected <<-\EOF &&
file
file
file
file
EOF
git -C conflict ls-files --with-tree=HEAD >actual &&
test_cmp expected actual
Auto-merging file
CONFLICT (content): Merge conflict in file
Automatic merge failed; fix conflicts and then commit the result.
ok 7 - output in a conflict
expecting success of 3060.8 'output with removed .git/index':
cat >expected <<-\EOF &&
file
EOF
rm conflict/.git/index &&
git -C conflict ls-files --with-tree=HEAD >actual &&
test_cmp expected actual
ok 8 - output with removed .git/index
# passed all 8 test(s)
1..8
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3102-ls-tree-wildcards.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3102-ls-tree-wildcards/.git/
expecting success of 3102.1 'setup':
mkdir a aa "a[a]" &&
touch a/one aa/two "a[a]/three" &&
git add a/one aa/two "a[a]/three" &&
git commit -m test
[master (root-commit) a832b10] test
Author: A U Thor <author@example.com>
3 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a/one
create mode 100644 a[a]/three
create mode 100644 aa/two
ok 1 - setup
expecting success of 3102.2 'ls-tree a[a] matches literally':
cat >expect <<-EOF &&
100644 blob $EMPTY_BLOB a[a]/three
EOF
git ls-tree -r HEAD "a[a]" >actual &&
test_cmp expect actual
ok 2 - ls-tree a[a] matches literally
expecting success of 3102.3 'ls-tree outside prefix':
cat >expect <<-EOF &&
100644 blob $EMPTY_BLOB ../a[a]/three
EOF
( cd aa && git ls-tree -r HEAD "../a[a]" ) >actual &&
test_cmp expect actual
ok 3 - ls-tree outside prefix
checking known breakage of 3102.4 'ls-tree does not yet support negated pathspec':
git ls-files ":(exclude)a" "a*" >expect &&
git ls-tree --name-only -r HEAD ":(exclude)a" "a*" >actual &&
test_cmp expect actual
fatal: :(exclude)a: pathspec magic not supported by this command: 'exclude' (mnemonic: '!')
not ok 4 - ls-tree does not yet support negated pathspec # TODO known breakage
# still have 1 known breakage(s)
# passed all remaining 3 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3100-ls-tree-restrict.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3100-ls-tree-restrict/.git/
expecting success of 3100.1 'setup': mkdir path2 path2/baz &&
echo Hi >path0 &&
test_ln_s_add path0 path1 &&
test_ln_s_add ../path1 path2/bazbo &&
echo Lo >path2/foo &&
echo Mi >path2/baz/b &&
find path? \( -type f -o -type l \) -print |
xargs git update-index --add &&
tree=$(git write-tree) &&
echo $tree
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
a384d4f8dd786f29d6da4705dee4c2c0bc6b5049
ok 1 - setup
expecting success of 3100.2 'ls-tree plain': git ls-tree $tree >current &&
cat >expected <<\EOF &&
100644 blob X path0
120000 blob X path1
040000 tree X path2
EOF
test_output
ok 2 - ls-tree plain
expecting success of 3100.3 'ls-tree recursive': git ls-tree -r $tree >current &&
cat >expected <<\EOF &&
100644 blob X path0
120000 blob X path1
100644 blob X path2/baz/b
120000 blob X path2/bazbo
100644 blob X path2/foo
EOF
test_output
ok 3 - ls-tree recursive
expecting success of 3100.4 'ls-tree recursive with -t': git ls-tree -r -t $tree >current &&
cat >expected <<\EOF &&
100644 blob X path0
120000 blob X path1
040000 tree X path2
040000 tree X path2/baz
100644 blob X path2/baz/b
120000 blob X path2/bazbo
100644 blob X path2/foo
EOF
test_output
ok 4 - ls-tree recursive with -t
expecting success of 3100.5 'ls-tree recursive with -d': git ls-tree -r -d $tree >current &&
cat >expected <<\EOF &&
040000 tree X path2
040000 tree X path2/baz
EOF
test_output
ok 5 - ls-tree recursive with -d
expecting success of 3100.6 'ls-tree filtered with path': git ls-tree $tree path >current &&
cat >expected <<\EOF &&
EOF
test_output
ok 6 - ls-tree filtered with path
expecting success of 3100.7 'ls-tree filtered with path1 path0': git ls-tree $tree path1 path0 >current &&
cat >expected <<\EOF &&
100644 blob X path0
120000 blob X path1
EOF
test_output
ok 7 - ls-tree filtered with path1 path0
expecting success of 3100.8 'ls-tree filtered with path0/': git ls-tree $tree path0/ >current &&
cat >expected <<\EOF &&
EOF
test_output
ok 8 - ls-tree filtered with path0/
expecting success of 3100.9 'ls-tree filtered with path2': git ls-tree $tree path2 >current &&
cat >expected <<\EOF &&
040000 tree X path2
EOF
test_output
ok 9 - ls-tree filtered with path2
expecting success of 3100.10 'ls-tree filtered with path2/': git ls-tree $tree path2/ >current &&
cat >expected <<\EOF &&
040000 tree X path2/baz
120000 blob X path2/bazbo
100644 blob X path2/foo
EOF
test_output
ok 10 - ls-tree filtered with path2/
expecting success of 3100.11 'ls-tree filtered with path2/baz': git ls-tree $tree path2/baz >current &&
cat >expected <<\EOF &&
040000 tree X path2/baz
EOF
test_output
ok 11 - ls-tree filtered with path2/baz
expecting success of 3100.12 'ls-tree filtered with path2/bak': git ls-tree $tree path2/bak >current &&
cat >expected <<\EOF &&
EOF
test_output
ok 12 - ls-tree filtered with path2/bak
expecting success of 3100.13 'ls-tree -t filtered with path2/bak': git ls-tree -t $tree path2/bak >current &&
cat >expected <<\EOF &&
040000 tree X path2
EOF
test_output
ok 13 - ls-tree -t filtered with path2/bak
expecting success of 3100.14 'ls-tree with one path a prefix of the other': git ls-tree $tree path2/baz path2/bazbo >current &&
cat >expected <<\EOF &&
040000 tree X path2/baz
120000 blob X path2/bazbo
EOF
test_output
ok 14 - ls-tree with one path a prefix of the other
# passed all 14 test(s)
1..14
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3101-ls-tree-dirname.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3101-ls-tree-dirname/.git/
expecting success of 3101.1 'setup':
echo 111 >1.txt &&
echo 222 >2.txt &&
mkdir path0 path0/a path0/a/b path0/a/b/c &&
echo 111 >path0/a/b/c/1.txt &&
mkdir path1 path1/b path1/b/c &&
echo 111 >path1/b/c/1.txt &&
mkdir path2 &&
echo 111 >path2/1.txt &&
mkdir path3 &&
echo 111 >path3/1.txt &&
echo 222 >path3/2.txt &&
find *.txt path* \( -type f -o -type l \) -print |
xargs git update-index --add &&
tree=$(git write-tree) &&
echo $tree
ef2ea4d6de8ec0863f430e4cad7468ce74f60aa7
ok 1 - setup
expecting success of 3101.2 'ls-tree plain':
git ls-tree $tree >current &&
cat >expected <<\EOF &&
100644 blob X 1.txt
100644 blob X 2.txt
040000 tree X path0
040000 tree X path1
040000 tree X path2
040000 tree X path3
EOF
test_output
ok 2 - ls-tree plain
expecting success of 3101.3 'ls-tree recursive':
git ls-tree -r $tree >current &&
cat >expected <<\EOF &&
100644 blob X 1.txt
100644 blob X 2.txt
100644 blob X path0/a/b/c/1.txt
100644 blob X path1/b/c/1.txt
100644 blob X path2/1.txt
100644 blob X path3/1.txt
100644 blob X path3/2.txt
EOF
test_output
ok 3 - ls-tree recursive
expecting success of 3101.4 'ls-tree filter 1.txt':
git ls-tree $tree 1.txt >current &&
cat >expected <<\EOF &&
100644 blob X 1.txt
EOF
test_output
ok 4 - ls-tree filter 1.txt
expecting success of 3101.5 'ls-tree filter path1/b/c/1.txt':
git ls-tree $tree path1/b/c/1.txt >current &&
cat >expected <<\EOF &&
100644 blob X path1/b/c/1.txt
EOF
test_output
ok 5 - ls-tree filter path1/b/c/1.txt
expecting success of 3101.6 'ls-tree filter all 1.txt files':
git ls-tree $tree 1.txt path0/a/b/c/1.txt \
path1/b/c/1.txt path2/1.txt path3/1.txt >current &&
cat >expected <<\EOF &&
100644 blob X 1.txt
100644 blob X path0/a/b/c/1.txt
100644 blob X path1/b/c/1.txt
100644 blob X path2/1.txt
100644 blob X path3/1.txt
EOF
test_output
ok 6 - ls-tree filter all 1.txt files
expecting success of 3101.7 'ls-tree filter directories':
git ls-tree $tree path3 path2 path0/a/b/c path1/b/c path0/a >current &&
cat >expected <<\EOF &&
040000 tree X path0/a/b/c
040000 tree X path1/b/c
040000 tree X path2
040000 tree X path3
EOF
test_output
ok 7 - ls-tree filter directories
expecting success of 3101.8 'ls-tree filter odd names':
git ls-tree $tree 1.txt ./1.txt .//1.txt \
path3/1.txt path3/./1.txt path3 path3// >current &&
cat >expected <<\EOF &&
100644 blob X 1.txt
100644 blob X path3/1.txt
100644 blob X path3/2.txt
EOF
test_output
ok 8 - ls-tree filter odd names
expecting success of 3101.9 'ls-tree filter missing files and extra slashes':
git ls-tree $tree 1.txt/ abc.txt \
path3//23.txt path3/2.txt/// >current &&
>expected &&
test_output
ok 9 - ls-tree filter missing files and extra slashes
expecting success of 3101.10 'ls-tree filter is leading path match':
git ls-tree $tree pa path3/a >current &&
>expected &&
test_output
ok 10 - ls-tree filter is leading path match
expecting success of 3101.11 'ls-tree --full-name':
(
cd path0 &&
git ls-tree --full-name $tree a
) >current &&
cat >expected <<\EOF &&
040000 tree X path0/a
EOF
test_output
ok 11 - ls-tree --full-name
expecting success of 3101.12 'ls-tree --full-tree':
(
cd path1/b/c &&
git ls-tree --full-tree $tree
) >current &&
cat >expected <<\EOF &&
100644 blob X 1.txt
100644 blob X 2.txt
040000 tree X path0
040000 tree X path1
040000 tree X path2
040000 tree X path3
EOF
test_output
ok 12 - ls-tree --full-tree
expecting success of 3101.13 'ls-tree --full-tree -r':
(
cd path3/ &&
git ls-tree --full-tree -r $tree
) >current &&
cat >expected <<\EOF &&
100644 blob X 1.txt
100644 blob X 2.txt
100644 blob X path0/a/b/c/1.txt
100644 blob X path1/b/c/1.txt
100644 blob X path2/1.txt
100644 blob X path3/1.txt
100644 blob X path3/2.txt
EOF
test_output
ok 13 - ls-tree --full-tree -r
expecting success of 3101.14 'ls-tree --abbrev=5':
git ls-tree --abbrev=5 $tree >current &&
sed -e "s/ $_x05[0-9a-f]* / X /" <current >check &&
cat >expected <<\EOF &&
100644 blob X 1.txt
100644 blob X 2.txt
040000 tree X path0
040000 tree X path1
040000 tree X path2
040000 tree X path3
EOF
test_cmp expected check
ok 14 - ls-tree --abbrev=5
expecting success of 3101.15 'ls-tree --name-only':
git ls-tree $opt $tree >current &&
cat >expected <<-\EOF &&
1.txt
2.txt
path0
path1
path2
path3
EOF
test_output
ok 15 - ls-tree --name-only
expecting success of 3101.16 'ls-tree --name-only -r':
git ls-tree $opt -r $tree >current &&
cat >expected <<-\EOF &&
1.txt
2.txt
path0/a/b/c/1.txt
path1/b/c/1.txt
path2/1.txt
path3/1.txt
path3/2.txt
EOF
test_output
ok 16 - ls-tree --name-only -r
expecting success of 3101.17 'ls-tree --name-status':
git ls-tree $opt $tree >current &&
cat >expected <<-\EOF &&
1.txt
2.txt
path0
path1
path2
path3
EOF
test_output
ok 17 - ls-tree --name-status
expecting success of 3101.18 'ls-tree --name-status -r':
git ls-tree $opt -r $tree >current &&
cat >expected <<-\EOF &&
1.txt
2.txt
path0/a/b/c/1.txt
path1/b/c/1.txt
path2/1.txt
path3/1.txt
path3/2.txt
EOF
test_output
ok 18 - ls-tree --name-status -r
# passed all 18 test(s)
1..18
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3103-ls-tree-misc.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3103-ls-tree-misc/.git/
expecting success of 3103.1 'setup':
mkdir a &&
touch a/one &&
git add a/one &&
git commit -m test
[master (root-commit) 687a3e0] test
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a/one
ok 1 - setup
expecting success of 3103.2 'ls-tree fails with non-zero exit code on broken tree':
tree=$(git rev-parse HEAD:a) &&
rm -f .git/objects/$(echo $tree | sed -e "s,^\(..\),\1/,") &&
test_must_fail git ls-tree -r HEAD
error: Could not read 5fcffbd6e4c5c5b8d81f5e9314b20e338e3ffff5
ok 2 - ls-tree fails with non-zero exit code on broken tree
expecting success of 3103.3 'usage: incompatible options: --long --name-only':
test_expect_code 129 git ls-tree $opts $tree
error: option `name-only' is incompatible with --long
ok 3 - usage: incompatible options: --long --name-only
expecting success of 3103.4 'usage: incompatible options: --long and --format':
test_expect_code 129 git ls-tree $one_opt --format=fmt $tree
fatal: --format can't be combined with other format-altering options
usage: git ls-tree [<options>] <tree-ish> [<path>...]
-d only show trees
-r recurse into subtrees
-t show trees when recursing
-z terminate entries with NUL byte
-l, --long include object size
--name-only list only filenames
--name-status list only filenames
--object-only list only objects
--full-name use full path names
--full-tree list entire tree; not just current directory (implies --full-name)
--format <format> format to use for the output
--abbrev[=<n>] use <n> digits to display object names
ok 4 - usage: incompatible options: --long and --format
expecting success of 3103.5 'usage: incompatible options: --name-only --name-status':
test_expect_code 129 git ls-tree $opts $tree
error: option `name-status' is incompatible with --name-only
ok 5 - usage: incompatible options: --name-only --name-status
expecting success of 3103.6 'usage: incompatible options: --name-only and --format':
test_expect_code 129 git ls-tree $one_opt --format=fmt $tree
fatal: --format can't be combined with other format-altering options
usage: git ls-tree [<options>] <tree-ish> [<path>...]
-d only show trees
-r recurse into subtrees
-t show trees when recursing
-z terminate entries with NUL byte
-l, --long include object size
--name-only list only filenames
--name-status list only filenames
--object-only list only objects
--full-name use full path names
--full-tree list entire tree; not just current directory (implies --full-name)
--format <format> format to use for the output
--abbrev[=<n>] use <n> digits to display object names
ok 6 - usage: incompatible options: --name-only and --format
expecting success of 3103.7 'usage: incompatible options: --name-status --object-only':
test_expect_code 129 git ls-tree $opts $tree
error: option `object-only' is incompatible with --name-status
ok 7 - usage: incompatible options: --name-status --object-only
expecting success of 3103.8 'usage: incompatible options: --name-status and --format':
test_expect_code 129 git ls-tree $one_opt --format=fmt $tree
fatal: --format can't be combined with other format-altering options
usage: git ls-tree [<options>] <tree-ish> [<path>...]
-d only show trees
-r recurse into subtrees
-t show trees when recursing
-z terminate entries with NUL byte
-l, --long include object size
--name-only list only filenames
--name-status list only filenames
--object-only list only objects
--full-name use full path names
--full-tree list entire tree; not just current directory (implies --full-name)
--format <format> format to use for the output
--abbrev[=<n>] use <n> digits to display object names
ok 8 - usage: incompatible options: --name-status and --format
expecting success of 3103.9 'usage: incompatible options: --object-only --long':
test_expect_code 129 git ls-tree $opts $tree
error: option `long' is incompatible with --object-only
ok 9 - usage: incompatible options: --object-only --long
expecting success of 3103.10 'usage: incompatible options: --object-only and --format':
test_expect_code 129 git ls-tree $one_opt --format=fmt $tree
fatal: --format can't be combined with other format-altering options
usage: git ls-tree [<options>] <tree-ish> [<path>...]
-d only show trees
-r recurse into subtrees
-t show trees when recursing
-z terminate entries with NUL byte
-l, --long include object size
--name-only list only filenames
--name-status list only filenames
--object-only list only objects
--full-name use full path names
--full-tree list entire tree; not just current directory (implies --full-name)
--format <format> format to use for the output
--abbrev[=<n>] use <n> digits to display object names
ok 10 - usage: incompatible options: --object-only and --format
# passed all 10 test(s)
1..10
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3104-ls-tree-format.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3104-ls-tree-format/.git/
expecting success of 3104.1 'ls-tree --format usage':
test_expect_code 129 git ls-tree --format=fmt -l HEAD &&
test_expect_code 129 git ls-tree --format=fmt --name-only HEAD &&
test_expect_code 129 git ls-tree --format=fmt --name-status HEAD
fatal: --format can't be combined with other format-altering options
usage: git ls-tree [<options>] <tree-ish> [<path>...]
-d only show trees
-r recurse into subtrees
-t show trees when recursing
-z terminate entries with NUL byte
-l, --long include object size
--name-only list only filenames
--name-status list only filenames
--object-only list only objects
--full-name use full path names
--full-tree list entire tree; not just current directory (implies --full-name)
--format <format> format to use for the output
--abbrev[=<n>] use <n> digits to display object names
fatal: --format can't be combined with other format-altering options
usage: git ls-tree [<options>] <tree-ish> [<path>...]
-d only show trees
-r recurse into subtrees
-t show trees when recursing
-z terminate entries with NUL byte
-l, --long include object size
--name-only list only filenames
--name-status list only filenames
--object-only list only objects
--full-name use full path names
--full-tree list entire tree; not just current directory (implies --full-name)
--format <format> format to use for the output
--abbrev[=<n>] use <n> digits to display object names
fatal: --format can't be combined with other format-altering options
usage: git ls-tree [<options>] <tree-ish> [<path>...]
-d only show trees
-r recurse into subtrees
-t show trees when recursing
-z terminate entries with NUL byte
-l, --long include object size
--name-only list only filenames
--name-status list only filenames
--object-only list only objects
--full-name use full path names
--full-tree list entire tree; not just current directory (implies --full-name)
--format <format> format to use for the output
--abbrev[=<n>] use <n> digits to display object names
ok 1 - ls-tree --format usage
expecting success of 3104.2 'setup':
setup_basic_ls_tree_data
[master (root-commit) 921915e] dir/sub-file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 dir/sub-file.t
[master 61a63ac] top-file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 top-file.t
Cloning into 'submodule'...
done.
Adding existing repo at 'submodule' to the index
[master 9ac950e] add submodule
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 submodule
ok 2 - setup
expecting success of 3104.3 'ls-tree --format='%(path) %(path) %(path)' HEAD top-file':
git ls-tree --format="%(path) %(path) %(path)" HEAD top-file.t >actual &&
echo top-file.t top-file.t top-file.t >expect &&
test_cmp expect actual
ok 3 - ls-tree --format='%(path) %(path) %(path)' HEAD top-file
expecting success of 3104.4 'ls-tree '--format=<%(objectmode) %(objecttype) %(objectname)%x09%(path)>' is like options ' '':
git ls-tree $opts -r HEAD >expect &&
git ls-tree --format="$format" -r $fmtopts HEAD >actual &&
test_cmp expect actual
ok 4 - ls-tree '--format=<%(objectmode) %(objecttype) %(objectname)%x09%(path)>' is like options ' '
expecting success of 3104.5 'ls-tree '--format=<%(objectmode) %(objecttype) %(objectname)%x09%(path)>' on optimized v.s. non-optimized path':
git ls-tree --format="$format" -r $fmtopts HEAD >expect &&
git ls-tree --format="> $format" -r $fmtopts HEAD >actual.raw &&
sed "s/^> //" >actual <actual.raw &&
test_cmp expect actual
ok 5 - ls-tree '--format=<%(objectmode) %(objecttype) %(objectname)%x09%(path)>' on optimized v.s. non-optimized path
expecting success of 3104.6 'ls-tree '--format=<%(objectmode) %(objecttype) %(objectname) %(objectsize:padded)%x09%(path)>' is like options '--long '':
git ls-tree $opts -r HEAD >expect &&
git ls-tree --format="$format" -r $fmtopts HEAD >actual &&
test_cmp expect actual
ok 6 - ls-tree '--format=<%(objectmode) %(objecttype) %(objectname) %(objectsize:padded)%x09%(path)>' is like options '--long '
expecting success of 3104.7 'ls-tree '--format=<%(objectmode) %(objecttype) %(objectname) %(objectsize:padded)%x09%(path)>' on optimized v.s. non-optimized path':
git ls-tree --format="$format" -r $fmtopts HEAD >expect &&
git ls-tree --format="> $format" -r $fmtopts HEAD >actual.raw &&
sed "s/^> //" >actual <actual.raw &&
test_cmp expect actual
ok 7 - ls-tree '--format=<%(objectmode) %(objecttype) %(objectname) %(objectsize:padded)%x09%(path)>' on optimized v.s. non-optimized path
expecting success of 3104.8 'ls-tree '--format=<%(path)>' is like options '--name-only '':
git ls-tree $opts -r HEAD >expect &&
git ls-tree --format="$format" -r $fmtopts HEAD >actual &&
test_cmp expect actual
ok 8 - ls-tree '--format=<%(path)>' is like options '--name-only '
expecting success of 3104.9 'ls-tree '--format=<%(path)>' on optimized v.s. non-optimized path':
git ls-tree --format="$format" -r $fmtopts HEAD >expect &&
git ls-tree --format="> $format" -r $fmtopts HEAD >actual.raw &&
sed "s/^> //" >actual <actual.raw &&
test_cmp expect actual
ok 9 - ls-tree '--format=<%(path)>' on optimized v.s. non-optimized path
expecting success of 3104.10 'ls-tree '--format=<%(objectname)>' is like options '--object-only '':
git ls-tree $opts -r HEAD >expect &&
git ls-tree --format="$format" -r $fmtopts HEAD >actual &&
test_cmp expect actual
ok 10 - ls-tree '--format=<%(objectname)>' is like options '--object-only '
expecting success of 3104.11 'ls-tree '--format=<%(objectname)>' on optimized v.s. non-optimized path':
git ls-tree --format="$format" -r $fmtopts HEAD >expect &&
git ls-tree --format="> $format" -r $fmtopts HEAD >actual.raw &&
sed "s/^> //" >actual <actual.raw &&
test_cmp expect actual
ok 11 - ls-tree '--format=<%(objectname)>' on optimized v.s. non-optimized path
expecting success of 3104.12 'ls-tree '--format=<%(objectname)>' is like options '--object-only --abbrev --abbrev'':
git ls-tree $opts -r HEAD >expect &&
git ls-tree --format="$format" -r $fmtopts HEAD >actual &&
test_cmp expect actual
ok 12 - ls-tree '--format=<%(objectname)>' is like options '--object-only --abbrev --abbrev'
expecting success of 3104.13 'ls-tree '--format=<%(objectname)>' on optimized v.s. non-optimized path':
git ls-tree --format="$format" -r $fmtopts HEAD >expect &&
git ls-tree --format="> $format" -r $fmtopts HEAD >actual.raw &&
sed "s/^> //" >actual <actual.raw &&
test_cmp expect actual
ok 13 - ls-tree '--format=<%(objectname)>' on optimized v.s. non-optimized path
expecting success of 3104.14 'ls-tree '--format=<%(objectmode) %(objecttype) %(objectname)%x09%(path)>' is like options '-t -t'':
git ls-tree $opts -r HEAD >expect &&
git ls-tree --format="$format" -r $fmtopts HEAD >actual &&
test_cmp expect actual
ok 14 - ls-tree '--format=<%(objectmode) %(objecttype) %(objectname)%x09%(path)>' is like options '-t -t'
expecting success of 3104.15 'ls-tree '--format=<%(objectmode) %(objecttype) %(objectname)%x09%(path)>' on optimized v.s. non-optimized path':
git ls-tree --format="$format" -r $fmtopts HEAD >expect &&
git ls-tree --format="> $format" -r $fmtopts HEAD >actual.raw &&
sed "s/^> //" >actual <actual.raw &&
test_cmp expect actual
ok 15 - ls-tree '--format=<%(objectmode) %(objecttype) %(objectname)%x09%(path)>' on optimized v.s. non-optimized path
expecting success of 3104.16 'ls-tree '--format=<%(objectmode) %(objecttype) %(objectname)%x09%(path)>' is like options '--full-name --full-name'':
git ls-tree $opts -r HEAD >expect &&
git ls-tree --format="$format" -r $fmtopts HEAD >actual &&
test_cmp expect actual
ok 16 - ls-tree '--format=<%(objectmode) %(objecttype) %(objectname)%x09%(path)>' is like options '--full-name --full-name'
expecting success of 3104.17 'ls-tree '--format=<%(objectmode) %(objecttype) %(objectname)%x09%(path)>' on optimized v.s. non-optimized path':
git ls-tree --format="$format" -r $fmtopts HEAD >expect &&
git ls-tree --format="> $format" -r $fmtopts HEAD >actual.raw &&
sed "s/^> //" >actual <actual.raw &&
test_cmp expect actual
ok 17 - ls-tree '--format=<%(objectmode) %(objecttype) %(objectname)%x09%(path)>' on optimized v.s. non-optimized path
expecting success of 3104.18 'ls-tree '--format=<%(objectmode) %(objecttype) %(objectname)%x09%(path)>' is like options '--full-tree --full-tree'':
git ls-tree $opts -r HEAD >expect &&
git ls-tree --format="$format" -r $fmtopts HEAD >actual &&
test_cmp expect actual
ok 18 - ls-tree '--format=<%(objectmode) %(objecttype) %(objectname)%x09%(path)>' is like options '--full-tree --full-tree'
expecting success of 3104.19 'ls-tree '--format=<%(objectmode) %(objecttype) %(objectname)%x09%(path)>' on optimized v.s. non-optimized path':
git ls-tree --format="$format" -r $fmtopts HEAD >expect &&
git ls-tree --format="> $format" -r $fmtopts HEAD >actual.raw &&
sed "s/^> //" >actual <actual.raw &&
test_cmp expect actual
ok 19 - ls-tree '--format=<%(objectmode) %(objecttype) %(objectname)%x09%(path)>' on optimized v.s. non-optimized path
# passed all 19 test(s)
1..19
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3105-ls-tree-output.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3105-ls-tree-output/.git/
expecting success of 3105.1 'ls-tree --format usage':
test_expect_code 129 git ls-tree --format=fmt -l HEAD &&
test_expect_code 129 git ls-tree --format=fmt --name-only HEAD &&
test_expect_code 129 git ls-tree --format=fmt --name-status HEAD
fatal: --format can't be combined with other format-altering options
usage: git ls-tree [<options>] <tree-ish> [<path>...]
-d only show trees
-r recurse into subtrees
-t show trees when recursing
-z terminate entries with NUL byte
-l, --long include object size
--name-only list only filenames
--name-status list only filenames
--object-only list only objects
--full-name use full path names
--full-tree list entire tree; not just current directory (implies --full-name)
--format <format> format to use for the output
--abbrev[=<n>] use <n> digits to display object names
fatal: --format can't be combined with other format-altering options
usage: git ls-tree [<options>] <tree-ish> [<path>...]
-d only show trees
-r recurse into subtrees
-t show trees when recursing
-z terminate entries with NUL byte
-l, --long include object size
--name-only list only filenames
--name-status list only filenames
--object-only list only objects
--full-name use full path names
--full-tree list entire tree; not just current directory (implies --full-name)
--format <format> format to use for the output
--abbrev[=<n>] use <n> digits to display object names
fatal: --format can't be combined with other format-altering options
usage: git ls-tree [<options>] <tree-ish> [<path>...]
-d only show trees
-r recurse into subtrees
-t show trees when recursing
-z terminate entries with NUL byte
-l, --long include object size
--name-only list only filenames
--name-status list only filenames
--object-only list only objects
--full-name use full path names
--full-tree list entire tree; not just current directory (implies --full-name)
--format <format> format to use for the output
--abbrev[=<n>] use <n> digits to display object names
ok 1 - ls-tree --format usage
expecting success of 3105.2 'setup':
setup_basic_ls_tree_data
[master (root-commit) 921915e] dir/sub-file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 dir/sub-file.t
[master 61a63ac] top-file
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 top-file.t
Cloning into 'submodule'...
done.
Adding existing repo at 'submodule' to the index
[master 9ac950e] add submodule
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 submodule
ok 2 - setup
expecting success of 3105.3 'setup: HEAD_* variables':
HEAD_gitmodules=$(git rev-parse HEAD:.gitmodules) &&
HEAD_dir=$(git rev-parse HEAD:dir) &&
HEAD_top_file=$(git rev-parse HEAD:top-file.t) &&
HEAD_submodule=$(git rev-parse HEAD:submodule) &&
HEAD_dir_sub_file=$(git rev-parse HEAD:dir/sub-file.t)
ok 3 - setup: HEAD_* variables
expecting success of 3105.4 ''ls-tree ' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 4 - 'ls-tree ' output
expecting success of 3105.5 ''ls-tree ' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 5 - 'ls-tree ' output (via subdir)
expecting success of 3105.6 ''ls-tree -t' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 6 - 'ls-tree -t' output
expecting success of 3105.7 ''ls-tree -t' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 7 - 'ls-tree -t' output (via subdir)
expecting success of 3105.8 ''ls-tree -d' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 8 - 'ls-tree -d' output
expecting success of 3105.9 ''ls-tree -d' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 9 - 'ls-tree -d' output (via subdir)
expecting success of 3105.10 ''ls-tree -r' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 10 - 'ls-tree -r' output
expecting success of 3105.11 ''ls-tree -r' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 11 - 'ls-tree -r' output (via subdir)
expecting success of 3105.12 ''ls-tree --long' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 12 - 'ls-tree --long' output
expecting success of 3105.13 ''ls-tree --long' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 13 - 'ls-tree --long' output (via subdir)
expecting success of 3105.14 ''ls-tree --long -t' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 14 - 'ls-tree --long -t' output
expecting success of 3105.15 ''ls-tree --long -t' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 15 - 'ls-tree --long -t' output (via subdir)
expecting success of 3105.16 ''ls-tree --long -d' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 16 - 'ls-tree --long -d' output
expecting success of 3105.17 ''ls-tree --long -d' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 17 - 'ls-tree --long -d' output (via subdir)
expecting success of 3105.18 ''ls-tree --long -r' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 18 - 'ls-tree --long -r' output
expecting success of 3105.19 ''ls-tree --long -r' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 19 - 'ls-tree --long -r' output (via subdir)
expecting success of 3105.20 ''ls-tree --name-only' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 20 - 'ls-tree --name-only' output
expecting success of 3105.21 ''ls-tree --name-only' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 21 - 'ls-tree --name-only' output (via subdir)
expecting success of 3105.22 ''ls-tree --name-only -t' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 22 - 'ls-tree --name-only -t' output
expecting success of 3105.23 ''ls-tree --name-only -t' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 23 - 'ls-tree --name-only -t' output (via subdir)
expecting success of 3105.24 ''ls-tree --name-only -d' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 24 - 'ls-tree --name-only -d' output
expecting success of 3105.25 ''ls-tree --name-only -d' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 25 - 'ls-tree --name-only -d' output (via subdir)
expecting success of 3105.26 ''ls-tree --name-only -r' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 26 - 'ls-tree --name-only -r' output
expecting success of 3105.27 ''ls-tree --name-only -r' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 27 - 'ls-tree --name-only -r' output (via subdir)
expecting success of 3105.28 ''ls-tree --object-only' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 28 - 'ls-tree --object-only' output
expecting success of 3105.29 ''ls-tree --object-only' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 29 - 'ls-tree --object-only' output (via subdir)
expecting success of 3105.30 ''ls-tree --object-only -t' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 30 - 'ls-tree --object-only -t' output
expecting success of 3105.31 ''ls-tree --object-only -t' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 31 - 'ls-tree --object-only -t' output (via subdir)
expecting success of 3105.32 ''ls-tree --object-only -d' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 32 - 'ls-tree --object-only -d' output
expecting success of 3105.33 ''ls-tree --object-only -d' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 33 - 'ls-tree --object-only -d' output (via subdir)
expecting success of 3105.34 ''ls-tree --object-only -r' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 34 - 'ls-tree --object-only -r' output
expecting success of 3105.35 ''ls-tree --object-only -r' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 35 - 'ls-tree --object-only -r' output (via subdir)
expecting success of 3105.36 'setup: HEAD_short_* variables':
HEAD_short_gitmodules=$(git rev-parse --short HEAD:.gitmodules) &&
HEAD_short_dir=$(git rev-parse --short HEAD:dir) &&
HEAD_short_top_file=$(git rev-parse --short HEAD:top-file.t) &&
HEAD_short_submodule=$(git rev-parse --short HEAD:submodule) &&
HEAD_short_dir_sub_file=$(git rev-parse --short HEAD:dir/sub-file.t)
ok 36 - setup: HEAD_short_* variables
expecting success of 3105.37 ''ls-tree --object-only --abbrev' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 37 - 'ls-tree --object-only --abbrev' output
expecting success of 3105.38 ''ls-tree --object-only --abbrev' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 38 - 'ls-tree --object-only --abbrev' output (via subdir)
expecting success of 3105.39 ''ls-tree --object-only --abbrev -t' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 39 - 'ls-tree --object-only --abbrev -t' output
expecting success of 3105.40 ''ls-tree --object-only --abbrev -t' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 40 - 'ls-tree --object-only --abbrev -t' output (via subdir)
expecting success of 3105.41 ''ls-tree --object-only --abbrev -d' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 41 - 'ls-tree --object-only --abbrev -d' output
expecting success of 3105.42 ''ls-tree --object-only --abbrev -d' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 42 - 'ls-tree --object-only --abbrev -d' output (via subdir)
expecting success of 3105.43 ''ls-tree --object-only --abbrev -r' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 43 - 'ls-tree --object-only --abbrev -r' output
expecting success of 3105.44 ''ls-tree --object-only --abbrev -r' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 44 - 'ls-tree --object-only --abbrev -r' output (via subdir)
expecting success of 3105.45 ''ls-tree --full-name' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 45 - 'ls-tree --full-name' output
expecting success of 3105.46 ''ls-tree --full-name' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 46 - 'ls-tree --full-name' output (via subdir)
expecting success of 3105.47 ''ls-tree --full-name -d' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 47 - 'ls-tree --full-name -d' output
expecting success of 3105.48 ''ls-tree --full-name -d' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 48 - 'ls-tree --full-name -d' output (via subdir)
expecting success of 3105.49 ''ls-tree --full-name -r' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 49 - 'ls-tree --full-name -r' output
expecting success of 3105.50 ''ls-tree --full-name -r' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 50 - 'ls-tree --full-name -r' output (via subdir)
expecting success of 3105.51 ''ls-tree --full-name -t' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 51 - 'ls-tree --full-name -t' output
expecting success of 3105.52 ''ls-tree --full-name -t' output (via subdir)':
git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../ >actual &&
test_cmp expect actual
ok 52 - 'ls-tree --full-name -t' output (via subdir)
expecting success of 3105.53 ''ls-tree --full-tree' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 53 - 'ls-tree --full-tree' output
expecting success of 3105.54 ''ls-tree --full-tree' output (via subdir, fails)':
test_must_fail git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../
fatal: ../: '../' is outside repository at '/<<PKGBUILDDIR>>/t/trash directory.t3105-ls-tree-output'
ok 54 - 'ls-tree --full-tree' output (via subdir, fails)
expecting success of 3105.55 ''ls-tree --full-tree -t' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 55 - 'ls-tree --full-tree -t' output
expecting success of 3105.56 ''ls-tree --full-tree -t' output (via subdir, fails)':
test_must_fail git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../
fatal: ../: '../' is outside repository at '/<<PKGBUILDDIR>>/t/trash directory.t3105-ls-tree-output'
ok 56 - 'ls-tree --full-tree -t' output (via subdir, fails)
expecting success of 3105.57 ''ls-tree --full-tree -d' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 57 - 'ls-tree --full-tree -d' output
expecting success of 3105.58 ''ls-tree --full-tree -d' output (via subdir, fails)':
test_must_fail git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../
fatal: ../: '../' is outside repository at '/<<PKGBUILDDIR>>/t/trash directory.t3105-ls-tree-output'
ok 58 - 'ls-tree --full-tree -d' output (via subdir, fails)
expecting success of 3105.59 ''ls-tree --full-tree -r' output':
git ls-tree ${mode:+$mode }$opts HEAD >actual &&
test_cmp expect actual
ok 59 - 'ls-tree --full-tree -r' output
expecting success of 3105.60 ''ls-tree --full-tree -r' output (via subdir, fails)':
test_must_fail git -C dir ls-tree --full-name ${mode:+$mode }$opts HEAD -- ../
fatal: ../: '../' is outside repository at '/<<PKGBUILDDIR>>/t/trash directory.t3105-ls-tree-output'
ok 60 - 'ls-tree --full-tree -r' output (via subdir, fails)
# passed all 60 test(s)
1..60
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3201-branch-contains.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3201-branch-contains/.git/
expecting success of 3201.1 'setup':
>file &&
git add file &&
test_tick &&
git commit -m initial &&
git branch -M main &&
git branch side &&
echo 1 >file &&
test_tick &&
git commit -a -m "second on main" &&
git checkout side &&
echo 1 >file &&
test_tick &&
git commit -a -m "second on side" &&
git merge main
[master (root-commit) 1bd44cb] initial
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 file
[main f254a9d] second on main
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Switched to branch 'side'
[side 5a0fd8a] second on side
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
Merge made by the 'ort' strategy.
ok 1 - setup
expecting success of 3201.2 'branch --contains=main':
git branch --contains=main >actual &&
{
echo " main" && echo "* side"
} >expect &&
test_cmp expect actual
ok 2 - branch --contains=main
expecting success of 3201.3 'branch --contains main':
git branch --contains main >actual &&
{
echo " main" && echo "* side"
} >expect &&
test_cmp expect actual
ok 3 - branch --contains main
expecting success of 3201.4 'branch --no-contains=main':
git branch --no-contains=main >actual &&
test_must_be_empty actual
ok 4 - branch --no-contains=main
expecting success of 3201.5 'branch --no-contains main':
git branch --no-contains main >actual &&
test_must_be_empty actual
ok 5 - branch --no-contains main
expecting success of 3201.6 'branch --contains=side':
git branch --contains=side >actual &&
{
echo "* side"
} >expect &&
test_cmp expect actual
ok 6 - branch --contains=side
expecting success of 3201.7 'branch --no-contains=side':
git branch --no-contains=side >actual &&
{
echo " main"
} >expect &&
test_cmp expect actual
ok 7 - branch --no-contains=side
expecting success of 3201.8 'branch --contains with pattern implies --list':
git branch --contains=main main >actual &&
{
echo " main"
} >expect &&
test_cmp expect actual
ok 8 - branch --contains with pattern implies --list
expecting success of 3201.9 'branch --no-contains with pattern implies --list':
git branch --no-contains=main main >actual &&
test_must_be_empty actual
ok 9 - branch --no-contains with pattern implies --list
expecting success of 3201.10 'side: branch --merged':
git branch --merged >actual &&
{
echo " main" &&
echo "* side"
} >expect &&
test_cmp expect actual
ok 10 - side: branch --merged
expecting success of 3201.11 'branch --merged with pattern implies --list':
git branch --merged=side main >actual &&
{
echo " main"
} >expect &&
test_cmp expect actual
ok 11 - branch --merged with pattern implies --list
expecting success of 3201.12 'side: branch --no-merged':
git branch --no-merged >actual &&
test_must_be_empty actual
ok 12 - side: branch --no-merged
expecting success of 3201.13 'main: branch --merged':
git checkout main &&
git branch --merged >actual &&
{
echo "* main"
} >expect &&
test_cmp expect actual
Switched to branch 'main'
ok 13 - main: branch --merged
expecting success of 3201.14 'main: branch --no-merged':
git branch --no-merged >actual &&
{
echo " side"
} >expect &&
test_cmp expect actual
ok 14 - main: branch --no-merged
expecting success of 3201.15 'branch --no-merged with pattern implies --list':
git branch --no-merged=main main >actual &&
test_must_be_empty actual
ok 15 - branch --no-merged with pattern implies --list
expecting success of 3201.16 'implicit --list conflicts with modification options':
test_must_fail git branch --contains=main -d &&
test_must_fail git branch --contains=main -m foo &&
test_must_fail git branch --no-contains=main -d &&
test_must_fail git branch --no-contains=main -m foo
usage: git branch [<options>] [-r | -a] [--merged] [--no-merged]
or: git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-point>]
or: git branch [<options>] [-l] [<pattern>...]
or: git branch [<options>] [-r] (-d | -D) <branch-name>...
or: git branch [<options>] (-m | -M) [<old-branch>] <new-branch>
or: git branch [<options>] (-c | -C) [<old-branch>] <new-branch>
or: git branch [<options>] [-r | -a] [--points-at]
or: git branch [<options>] [-r | -a] [--format]
Generic options
-v, --verbose show hash and subject, give twice for upstream branch
-q, --quiet suppress informational messages
-t, --track[=(direct|inherit)]
set branch tracking configuration
-u, --set-upstream-to <upstream>
change the upstream info
--unset-upstream unset the upstream info
--color[=<when>] use colored output
-r, --remotes act on remote-tracking branches
--contains <commit> print only branches that contain the commit
--no-contains <commit>
print only branches that don't contain the commit
--abbrev[=<n>] use <n> digits to display object names
Specific git-branch actions:
-a, --all list both remote-tracking and local branches
-d, --delete delete fully merged branch
-D delete branch (even if not merged)
-m, --move move/rename a branch and its reflog
-M move/rename a branch, even if target exists
-c, --copy copy a branch and its reflog
-C copy a branch, even if target exists
-l, --list list branch names
--show-current show current branch name
--create-reflog create the branch's reflog
--edit-description edit the description for the branch
-f, --force force creation, move/rename, deletion
--merged <commit> print only branches that are merged
--no-merged <commit> print only branches that are not merged
--column[=<style>] list branches in columns
--sort <key> field name to sort on
--points-at <object> print only branches of the object
-i, --ignore-case sorting and filtering are case insensitive
--recurse-submodules recurse through submodules
--format <format> format to use for the output
usage: git branch [<options>] [-r | -a] [--merged] [--no-merged]
or: git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-point>]
or: git branch [<options>] [-l] [<pattern>...]
or: git branch [<options>] [-r] (-d | -D) <branch-name>...
or: git branch [<options>] (-m | -M) [<old-branch>] <new-branch>
or: git branch [<options>] (-c | -C) [<old-branch>] <new-branch>
or: git branch [<options>] [-r | -a] [--points-at]
or: git branch [<options>] [-r | -a] [--format]
Generic options
-v, --verbose show hash and subject, give twice for upstream branch
-q, --quiet suppress informational messages
-t, --track[=(direct|inherit)]
set branch tracking configuration
-u, --set-upstream-to <upstream>
change the upstream info
--unset-upstream unset the upstream info
--color[=<when>] use colored output
-r, --remotes act on remote-tracking branches
--contains <commit> print only branches that contain the commit
--no-contains <commit>
print only branches that don't contain the commit
--abbrev[=<n>] use <n> digits to display object names
Specific git-branch actions:
-a, --all list both remote-tracking and local branches
-d, --delete delete fully merged branch
-D delete branch (even if not merged)
-m, --move move/rename a branch and its reflog
-M move/rename a branch, even if target exists
-c, --copy copy a branch and its reflog
-C copy a branch, even if target exists
-l, --list list branch names
--show-current show current branch name
--create-reflog create the branch's reflog
--edit-description edit the description for the branch
-f, --force force creation, move/rename, deletion
--merged <commit> print only branches that are merged
--no-merged <commit> print only branches that are not merged
--column[=<style>] list branches in columns
--sort <key> field name to sort on
--points-at <object> print only branches of the object
-i, --ignore-case sorting and filtering are case insensitive
--recurse-submodules recurse through submodules
--format <format> format to use for the output
usage: git branch [<options>] [-r | -a] [--merged] [--no-merged]
or: git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-point>]
or: git branch [<options>] [-l] [<pattern>...]
or: git branch [<options>] [-r] (-d | -D) <branch-name>...
or: git branch [<options>] (-m | -M) [<old-branch>] <new-branch>
or: git branch [<options>] (-c | -C) [<old-branch>] <new-branch>
or: git branch [<options>] [-r | -a] [--points-at]
or: git branch [<options>] [-r | -a] [--format]
Generic options
-v, --verbose show hash and subject, give twice for upstream branch
-q, --quiet suppress informational messages
-t, --track[=(direct|inherit)]
set branch tracking configuration
-u, --set-upstream-to <upstream>
change the upstream info
--unset-upstream unset the upstream info
--color[=<when>] use colored output
-r, --remotes act on remote-tracking branches
--contains <commit> print only branches that contain the commit
--no-contains <commit>
print only branches that don't contain the commit
--abbrev[=<n>] use <n> digits to display object names
Specific git-branch actions:
-a, --all list both remote-tracking and local branches
-d, --delete delete fully merged branch
-D delete branch (even if not merged)
-m, --move move/rename a branch and its reflog
-M move/rename a branch, even if target exists
-c, --copy copy a branch and its reflog
-C copy a branch, even if target exists
-l, --list list branch names
--show-current show current branch name
--create-reflog create the branch's reflog
--edit-description edit the description for the branch
-f, --force force creation, move/rename, deletion
--merged <commit> print only branches that are merged
--no-merged <commit> print only branches that are not merged
--column[=<style>] list branches in columns
--sort <key> field name to sort on
--points-at <object> print only branches of the object
-i, --ignore-case sorting and filtering are case insensitive
--recurse-submodules recurse through submodules
--format <format> format to use for the output
usage: git branch [<options>] [-r | -a] [--merged] [--no-merged]
or: git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-point>]
or: git branch [<options>] [-l] [<pattern>...]
or: git branch [<options>] [-r] (-d | -D) <branch-name>...
or: git branch [<options>] (-m | -M) [<old-branch>] <new-branch>
or: git branch [<options>] (-c | -C) [<old-branch>] <new-branch>
or: git branch [<options>] [-r | -a] [--points-at]
or: git branch [<options>] [-r | -a] [--format]
Generic options
-v, --verbose show hash and subject, give twice for upstream branch
-q, --quiet suppress informational messages
-t, --track[=(direct|inherit)]
set branch tracking configuration
-u, --set-upstream-to <upstream>
change the upstream info
--unset-upstream unset the upstream info
--color[=<when>] use colored output
-r, --remotes act on remote-tracking branches
--contains <commit> print only branches that contain the commit
--no-contains <commit>
print only branches that don't contain the commit
--abbrev[=<n>] use <n> digits to display object names
Specific git-branch actions:
-a, --all list both remote-tracking and local branches
-d, --delete delete fully merged branch
-D delete branch (even if not merged)
-m, --move move/rename a branch and its reflog
-M move/rename a branch, even if target exists
-c, --copy copy a branch and its reflog
-C copy a branch, even if target exists
-l, --list list branch names
--show-current show current branch name
--create-reflog create the branch's reflog
--edit-description edit the description for the branch
-f, --force force creation, move/rename, deletion
--merged <commit> print only branches that are merged
--no-merged <commit> print only branches that are not merged
--column[=<style>] list branches in columns
--sort <key> field name to sort on
--points-at <object> print only branches of the object
-i, --ignore-case sorting and filtering are case insensitive
--recurse-submodules recurse through submodules
--format <format> format to use for the output
ok 16 - implicit --list conflicts with modification options
expecting success of 3201.17 'Assert that --contains only works on commits, not trees & blobs':
test_must_fail git branch --contains main^{tree} &&
blob=$(git hash-object -w --stdin <<-\EOF
Some blob
EOF
) &&
test_must_fail git branch --contains $blob &&
test_must_fail git branch --no-contains $blob
error: object f27c6ae26adb8396d3861976ba268f87ad8afa0b is a tree, not a commit
error: no such commit main^{tree}
error: object cfb9f2866bfe62c278d75e8c33f020ccc27b5829 is a blob, not a commit
error: no such commit cfb9f2866bfe62c278d75e8c33f020ccc27b5829
error: object cfb9f2866bfe62c278d75e8c33f020ccc27b5829 is a blob, not a commit
error: no such commit cfb9f2866bfe62c278d75e8c33f020ccc27b5829
ok 17 - Assert that --contains only works on commits, not trees & blobs
expecting success of 3201.18 'multiple branch --contains':
git checkout -b side2 main &&
>feature &&
git add feature &&
git commit -m "add feature" &&
git checkout -b next main &&
git merge side &&
git branch --contains side --contains side2 >actual &&
cat >expect <<-\EOF &&
* next
side
side2
EOF
test_cmp expect actual
Switched to a new branch 'side2'
[side2 08dccf0] add feature
Author: A U Thor <author@example.com>
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 feature
Switched to a new branch 'next'
Updating f254a9d..8b329c6
Fast-forward
ok 18 - multiple branch --contains
expecting success of 3201.19 'multiple branch --merged':
git branch --merged next --merged main >actual &&
cat >expect <<-\EOF &&
main
* next
side
EOF
test_cmp expect actual
ok 19 - multiple branch --merged
expecting success of 3201.20 'multiple branch --no-contains':
git branch --no-contains side --no-contains side2 >actual &&
cat >expect <<-\EOF &&
main
EOF
test_cmp expect actual
ok 20 - multiple branch --no-contains
expecting success of 3201.21 'multiple branch --no-merged':
git branch --no-merged next --no-merged main >actual &&
cat >expect <<-\EOF &&
side2
EOF
test_cmp expect actual
ok 21 - multiple branch --no-merged
expecting success of 3201.22 'branch --contains combined with --no-contains':
git checkout -b seen main &&
git merge side &&
git merge side2 &&
git branch --contains side --no-contains side2 >actual &&
cat >expect <<-\EOF &&
next
side
EOF
test_cmp expect actual
Switched to a new branch 'seen'
Updating f254a9d..8b329c6
Fast-forward
Merge made by the 'ort' strategy.
feature | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 feature
ok 22 - branch --contains combined with --no-contains
expecting success of 3201.23 'branch --merged combined with --no-merged':
git branch --merged seen --no-merged next >actual &&
cat >expect <<-\EOF &&
* seen
side2
EOF
test_cmp expect actual
ok 23 - branch --merged combined with --no-merged
expecting success of 3201.24 'branch --merged with --verbose':
git branch --track topic main &&
git branch zzz topic &&
git checkout topic &&
test_commit foo &&
git branch --merged topic >actual &&
cat >expect <<-\EOF &&
main
* topic
zzz
EOF
test_cmp expect actual &&
git branch --verbose --merged topic >actual &&
cat >expect <<-EOF &&
main $(git rev-parse --short main) second on main
* topic $(git rev-parse --short topic ) [ahead 1] foo
zzz $(git rev-parse --short zzz ) second on main
EOF
test_cmp expect actual
branch 'topic' set up to track 'main'.
Switched to branch 'topic'
Your branch is up to date with 'main'.
[topic 67f297f] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
ok 24 - branch --merged with --verbose
# passed all 24 test(s)
1..24
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3202-show-branch.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3202-show-branch/.git/
expecting success of 3202.1 'error descriptions on empty repository':
current=$(git branch --show-current) &&
cat >expect <<-EOF &&
error: No commit on branch '$current' yet.
EOF
test_must_fail git branch --edit-description 2>actual &&
test_cmp expect actual &&
test_must_fail git branch --edit-description $current 2>actual &&
test_cmp expect actual
ok 1 - error descriptions on empty repository
expecting success of 3202.2 'fatal descriptions on empty repository':
current=$(git branch --show-current) &&
cat >expect <<-EOF &&
fatal: No commit on branch '$current' yet.
EOF
test_must_fail git branch --set-upstream-to=non-existent 2>actual &&
test_cmp expect actual &&
test_must_fail git branch -c new-branch 2>actual &&
test_cmp expect actual
ok 2 - fatal descriptions on empty repository
expecting success of 3202.3 'setup':
test_commit initial &&
for i in $(test_seq 1 10)
do
git checkout -b branch$i initial &&
test_commit --no-tag branch$i || return 1
done &&
git for-each-ref \
--sort=version:refname \
--format="%(refname:strip=2)" \
"refs/heads/branch*" >branches.sorted &&
sed "s/^> //" >expect <<-\EOF
> ! [branch1] branch1
> ! [branch2] branch2
> ! [branch3] branch3
> ! [branch4] branch4
> ! [branch5] branch5
> ! [branch6] branch6
> ! [branch7] branch7
> ! [branch8] branch8
> ! [branch9] branch9
> * [branch10] branch10
> ----------
> * [branch10] branch10
> + [branch9] branch9
> + [branch8] branch8
> + [branch7] branch7
> + [branch6] branch6
> + [branch5] branch5
> + [branch4] branch4
> + [branch3] branch3
> + [branch2] branch2
> + [branch1] branch1
> +++++++++* [branch10^] initial
EOF
[master (root-commit) 24b24cf] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 initial.t
Switched to a new branch 'branch1'
[branch1 39d0a3f] branch1
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 branch1.t
Switched to a new branch 'branch2'
[branch2 bcd9857] branch2
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 branch2.t
Switched to a new branch 'branch3'
[branch3 6401a40] branch3
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 branch3.t
Switched to a new branch 'branch4'
[branch4 831d58d] branch4
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 branch4.t
Switched to a new branch 'branch5'
[branch5 d4d852d] branch5
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 branch5.t
Switched to a new branch 'branch6'
[branch6 3af5e35] branch6
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 branch6.t
Switched to a new branch 'branch7'
[branch7 0cecb11] branch7
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 branch7.t
Switched to a new branch 'branch8'
[branch8 48b5688] branch8
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 branch8.t
Switched to a new branch 'branch9'
[branch9 b82e556] branch9
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 branch9.t
Switched to a new branch 'branch10'
[branch10 3b327e0] branch10
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 branch10.t
ok 3 - setup
expecting success of 3202.4 'show-branch with more than 8 branches':
git show-branch $(cat branches.sorted) >actual &&
test_cmp expect actual
ok 4 - show-branch with more than 8 branches
expecting success of 3202.5 'show-branch with showbranch.default':
for branch in $(cat branches.sorted)
do
test_config showbranch.default $branch --add || return 1
done &&
git show-branch >actual &&
test_cmp expect actual
ok 5 - show-branch with showbranch.default
expecting success of 3202.6 'show-branch --color output':
sed "s/^> //" >expect <<-\EOF &&
> <RED>!<RESET> [branch1] branch1
> <GREEN>!<RESET> [branch2] branch2
> <YELLOW>!<RESET> [branch3] branch3
> <BLUE>!<RESET> [branch4] branch4
> <MAGENTA>!<RESET> [branch5] branch5
> <CYAN>!<RESET> [branch6] branch6
> <BOLD;RED>!<RESET> [branch7] branch7
> <BOLD;GREEN>!<RESET> [branch8] branch8
> <BOLD;YELLOW>!<RESET> [branch9] branch9
> <BOLD;BLUE>*<RESET> [branch10] branch10
> ----------
> <BOLD;BLUE>*<RESET> [branch10] branch10
> <BOLD;YELLOW>+<RESET> [branch9] branch9
> <BOLD;GREEN>+<RESET> [branch8] branch8
> <BOLD;RED>+<RESET> [branch7] branch7
> <CYAN>+<RESET> [branch6] branch6
> <MAGENTA>+<RESET> [branch5] branch5
> <BLUE>+<RESET> [branch4] branch4
> <YELLOW>+<RESET> [branch3] branch3
> <GREEN>+<RESET> [branch2] branch2
> <RED>+<RESET> [branch1] branch1
> <RED>+<RESET><GREEN>+<RESET><YELLOW>+<RESET><BLUE>+<RESET><MAGENTA>+<RESET><CYAN>+<RESET><BOLD;RED>+<RESET><BOLD;GREEN>+<RESET><BOLD;YELLOW>+<RESET><BOLD;BLUE>*<RESET> [branch10^] initial
EOF
git show-branch --color=always $(cat branches.sorted) >actual.raw &&
test_decode_color <actual.raw >actual &&
test_cmp expect actual
ok 6 - show-branch --color output
expecting success of 3202.7 'show branch --remotes':
cat >expect.err <<-\EOF &&
No revs to be shown.
EOF
git show-branch -r 2>actual.err >actual.out &&
test_cmp expect.err actual.err &&
test_must_be_empty actual.out
ok 7 - show branch --remotes
expecting success of 3202.8 'setup show branch --list':
sed "s/^> //" >expect <<-\EOF
> [branch1] branch1
> [branch2] branch2
> [branch3] branch3
> [branch4] branch4
> [branch5] branch5
> [branch6] branch6
> [branch7] branch7
> [branch8] branch8
> [branch9] branch9
> * [branch10] branch10
EOF
ok 8 - setup show branch --list
expecting success of 3202.9 'show branch --list':
git show-branch --list $(cat branches.sorted) >actual &&
test_cmp expect actual
ok 9 - show branch --list
expecting success of 3202.10 'show branch --list has no --color output':
git show-branch --color=always --list $(cat branches.sorted) >actual &&
test_cmp expect actual
ok 10 - show branch --list has no --color output
expecting success of 3202.11 'show branch --merge-base with one argument':
for branch in $(cat branches.sorted)
do
git rev-parse $branch >expect &&
git show-branch --merge-base $branch >actual &&
test_cmp expect actual || return 1
done
ok 11 - show branch --merge-base with one argument
expecting success of 3202.12 'show branch --merge-base with two arguments':
for branch in $(cat branches.sorted)
do
git rev-parse initial >expect &&
git show-branch --merge-base initial $branch >actual &&
test_cmp expect actual || return 1
done
ok 12 - show branch --merge-base with two arguments
expecting success of 3202.13 'show branch --merge-base with N arguments':
git rev-parse initial >expect &&
git show-branch --merge-base $(cat branches.sorted) >actual &&
test_cmp expect actual &&
git merge-base $(cat branches.sorted) >actual &&
test_cmp expect actual
ok 13 - show branch --merge-base with N arguments
expecting success of 3202.14 'show branch --reflog=2':
sed "s/^> //" >expect <<-\EOF &&
> ! [refs/heads/branch10@{0}] (4 years, 5 months ago) commit: branch10
> ! [refs/heads/branch10@{1}] (4 years, 5 months ago) commit: branch10
> --
> + [refs/heads/branch10@{0}] branch10
> ++ [refs/heads/branch10@{1}] initial
EOF
git show-branch --reflog=2 >actual &&
test_cmp actual expect
ok 14 - show branch --reflog=2
expecting success of 3202.15 'show-branch --all --reflog (should fail)':
test_must_fail git show-branch $combo 2>error &&
grep -e "cannot be used together" -e "usage:" error
fatal: options '--reflog' and '--all/--remotes/--independent/--merge-base' cannot be used together
ok 15 - show-branch --all --reflog (should fail)
expecting success of 3202.16 'show-branch --merge-base --reflog (should fail)':
test_must_fail git show-branch $combo 2>error &&
grep -e "cannot be used together" -e "usage:" error
usage: git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]
ok 16 - show-branch --merge-base --reflog (should fail)
expecting success of 3202.17 'show-branch --list --merge-base (should fail)':
test_must_fail git show-branch $combo 2>error &&
grep -e "cannot be used together" -e "usage:" error
usage: git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]
ok 17 - show-branch --list --merge-base (should fail)
expecting success of 3202.18 'show-branch --reflog --current (should fail)':
test_must_fail git show-branch $combo 2>error &&
grep -e "cannot be used together" -e "usage:" error
fatal: options '--reflog' and '--current' cannot be used together
ok 18 - show-branch --reflog --current (should fail)
expecting success of 3202.19 'error descriptions on non-existent branch':
cat >expect <<-EOF &&
error: No branch named 'non-existent'.
EOF
test_must_fail git branch --edit-description non-existent 2>actual &&
test_cmp expect actual
ok 19 - error descriptions on non-existent branch
expecting success of 3202.20 'fatal descriptions on non-existent branch':
cat >expect <<-EOF &&
fatal: branch 'non-existent' does not exist
EOF
test_must_fail git branch --set-upstream-to=non-existent non-existent 2>actual &&
test_cmp expect actual &&
cat >expect <<-EOF &&
fatal: No branch named 'non-existent'.
EOF
test_must_fail git branch -c non-existent new-branch 2>actual &&
test_cmp expect actual &&
test_must_fail git branch -m non-existent new-branch 2>actual &&
test_cmp expect actual
ok 20 - fatal descriptions on non-existent branch
# passed all 20 test(s)
1..20
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3203-branch-output.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3203-branch-output/.git/
expecting success of 3203.1 'make commits':
echo content >file &&
git add file &&
git commit -m one &&
git branch -M main &&
echo content >>file &&
git commit -a -m two
[master (root-commit) f39a923] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 file
[main 5647d5f] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - make commits
expecting success of 3203.2 'make branches':
git branch branch-one &&
git branch branch-two HEAD^
ok 2 - make branches
expecting success of 3203.3 'make remote branches':
git update-ref refs/remotes/origin/branch-one branch-one &&
git update-ref refs/remotes/origin/branch-two branch-two &&
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/branch-one
ok 3 - make remote branches
expecting success of 3203.4 'git branch shows local branches':
git branch >actual &&
test_cmp expect actual
ok 4 - git branch shows local branches
expecting success of 3203.5 'git branch --list shows local branches':
git branch --list >actual &&
test_cmp expect actual
ok 5 - git branch --list shows local branches
expecting success of 3203.6 'git branch --list pattern shows matching local branches':
git branch --list branch* >actual &&
test_cmp expect actual
ok 6 - git branch --list pattern shows matching local branches
expecting success of 3203.7 'git branch -r shows remote branches':
git branch -r >actual &&
test_cmp expect actual
ok 7 - git branch -r shows remote branches
expecting success of 3203.8 'git branch -a shows local and remote branches':
git branch -a >actual &&
test_cmp expect actual
ok 8 - git branch -a shows local and remote branches
expecting success of 3203.9 'git branch -v shows branch summaries':
git branch -v >tmp &&
awk "{print \$NF}" <tmp >actual &&
test_cmp expect actual
ok 9 - git branch -v shows branch summaries
expecting success of 3203.10 'git branch --list -v pattern shows branch summaries':
git branch --list -v branch* >tmp &&
awk "{print \$NF}" <tmp >actual &&
test_cmp expect actual
ok 10 - git branch --list -v pattern shows branch summaries
expecting success of 3203.11 'git branch --ignore-case --list -v pattern shows branch summaries':
git branch --list --ignore-case -v BRANCH* >tmp &&
awk "{print \$NF}" <tmp >actual &&
test_cmp expect actual
ok 11 - git branch --ignore-case --list -v pattern shows branch summaries
expecting success of 3203.12 'git branch -v pattern does not show branch summaries':
test_must_fail git branch -v branch*
fatal: 'branch*' is not a valid branch name
ok 12 - git branch -v pattern does not show branch summaries
expecting success of 3203.13 'git branch `--show-current` shows current branch':
cat >expect <<-\EOF &&
branch-two
EOF
git checkout branch-two &&
git branch --show-current >actual &&
test_cmp expect actual
Switched to branch 'branch-two'
ok 13 - git branch `--show-current` shows current branch
expecting success of 3203.14 'git branch `--show-current` is silent when detached HEAD':
git checkout HEAD^0 &&
git branch --show-current >actual &&
test_must_be_empty 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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at f39a923 one
ok 14 - git branch `--show-current` is silent when detached HEAD
expecting success of 3203.15 'git branch `--show-current` works properly when tag exists':
cat >expect <<-\EOF &&
branch-and-tag-name
EOF
test_when_finished "
git checkout branch-one
git branch -D branch-and-tag-name
" &&
git checkout -b branch-and-tag-name &&
test_when_finished "git tag -d branch-and-tag-name" &&
git tag branch-and-tag-name &&
git branch --show-current >actual &&
test_cmp expect actual
Switched to a new branch 'branch-and-tag-name'
Deleted tag 'branch-and-tag-name' (was f39a923)
Switched to branch 'branch-one'
Deleted branch branch-and-tag-name (was f39a923).
ok 15 - git branch `--show-current` works properly when tag exists
expecting success of 3203.16 'git branch `--show-current` works properly with worktrees':
cat >expect <<-\EOF &&
branch-one
branch-two
EOF
git checkout branch-one &&
test_when_finished "
git worktree remove worktree_dir
" &&
git worktree add worktree_dir branch-two &&
{
git branch --show-current &&
git -C worktree_dir branch --show-current
} >actual &&
test_cmp expect actual
Already on 'branch-one'
Preparing worktree (checking out 'branch-two')
HEAD is now at f39a923 one
ok 16 - git branch `--show-current` works properly with worktrees
expecting success of 3203.17 'git branch shows detached HEAD properly':
cat >expect <<EOF &&
* (HEAD detached at $(git rev-parse --short HEAD^0))
branch-one
branch-two
main
EOF
git checkout HEAD^0 &&
git branch >actual &&
test_cmp 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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 5647d5f two
ok 17 - git branch shows detached HEAD properly
expecting success of 3203.18 'git branch shows detached HEAD properly after checkout --detach':
git checkout main &&
cat >expect <<EOF &&
* (HEAD detached at $(git rev-parse --short HEAD^0))
branch-one
branch-two
main
EOF
git checkout --detach &&
git branch >actual &&
test_cmp expect actual
Switched to branch 'main'
HEAD is now at 5647d5f two
ok 18 - git branch shows detached HEAD properly after checkout --detach
expecting success of 3203.19 'git branch shows detached HEAD properly after moving':
cat >expect <<EOF &&
* (HEAD detached from $(git rev-parse --short HEAD))
branch-one
branch-two
main
EOF
git reset --hard HEAD^1 &&
git branch >actual &&
test_cmp expect actual
HEAD is now at f39a923 one
ok 19 - git branch shows detached HEAD properly after moving
expecting success of 3203.20 'git branch shows detached HEAD properly from tag':
cat >expect <<EOF &&
* (HEAD detached at fromtag)
branch-one
branch-two
main
EOF
git tag fromtag main &&
git checkout fromtag &&
git branch >actual &&
test_cmp expect actual
Previous HEAD position was f39a923 one
HEAD is now at 5647d5f two
ok 20 - git branch shows detached HEAD properly from tag
expecting success of 3203.21 'git branch shows detached HEAD properly after moving from tag':
cat >expect <<EOF &&
* (HEAD detached from fromtag)
branch-one
branch-two
main
EOF
git reset --hard HEAD^1 &&
git branch >actual &&
test_cmp expect actual
HEAD is now at f39a923 one
ok 21 - git branch shows detached HEAD properly after moving from tag
expecting success of 3203.22 'git branch `--sort=[-]objectsize` option':
cat >expect <<-\EOF &&
* (HEAD detached from fromtag)
branch-two
branch-one
main
EOF
git branch --sort=objectsize >actual &&
test_cmp expect actual &&
cat >expect <<-\EOF &&
* (HEAD detached from fromtag)
branch-one
main
branch-two
EOF
git branch --sort=-objectsize >actual &&
test_cmp expect actual
ok 22 - git branch `--sort=[-]objectsize` option
expecting success of 3203.23 'git branch `--sort=[-]type` option':
cat >expect <<-\EOF &&
* (HEAD detached from fromtag)
branch-one
branch-two
main
EOF
git branch --sort=type >actual &&
test_cmp expect actual &&
cat >expect <<-\EOF &&
* (HEAD detached from fromtag)
branch-one
branch-two
main
EOF
git branch --sort=-type >actual &&
test_cmp expect actual
ok 23 - git branch `--sort=[-]type` option
expecting success of 3203.24 'git branch `--sort=[-]version:refname` option':
cat >expect <<-\EOF &&
* (HEAD detached from fromtag)
branch-one
branch-two
main
EOF
git branch --sort=version:refname >actual &&
test_cmp expect actual &&
cat >expect <<-\EOF &&
* (HEAD detached from fromtag)
main
branch-two
branch-one
EOF
git branch --sort=-version:refname >actual &&
test_cmp expect actual
ok 24 - git branch `--sort=[-]version:refname` option
expecting success of 3203.25 'git branch --points-at option':
cat >expect <<-\EOF &&
branch-one
main
EOF
git branch --points-at=branch-one >actual &&
test_cmp expect actual
ok 25 - git branch --points-at option
expecting success of 3203.26 'ambiguous branch/tag not marked':
git tag ambiguous &&
git branch ambiguous &&
echo " ambiguous" >expect &&
git branch --list ambiguous >actual &&
test_cmp expect actual
ok 26 - ambiguous branch/tag not marked
expecting success of 3203.27 'local-branch symrefs shortened properly':
git symbolic-ref refs/heads/ref-to-branch refs/heads/branch-one &&
git symbolic-ref refs/heads/ref-to-remote refs/remotes/origin/branch-one &&
cat >expect <<-\EOF &&
ref-to-branch -> branch-one
ref-to-remote -> origin/branch-one
EOF
git branch >actual.raw &&
grep ref-to <actual.raw >actual &&
test_cmp expect actual
ok 27 - local-branch symrefs shortened properly
expecting success of 3203.28 'sort branches, ignore case':
(
git init -b main sort-icase &&
cd sort-icase &&
test_commit initial &&
git branch branch-one &&
git branch BRANCH-two &&
git branch --list | awk "{print \$NF}" >actual &&
cat >expected <<-\EOF &&
BRANCH-two
branch-one
main
EOF
test_cmp expected actual &&
git branch --list -i | awk "{print \$NF}" >actual &&
cat >expected <<-\EOF &&
branch-one
BRANCH-two
main
EOF
test_cmp expected actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3203-branch-output/sort-icase/.git/
[main (root-commit) 24b24cf] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 initial.t
ok 28 - sort branches, ignore case
expecting success of 3203.29 'git branch --format option':
cat >expect <<-\EOF &&
Refname is (HEAD detached from fromtag)
Refname is refs/heads/ambiguous
Refname is refs/heads/branch-one
Refname is refs/heads/branch-two
Refname is refs/heads/main
Refname is refs/heads/ref-to-branch
Refname is refs/heads/ref-to-remote
EOF
git branch --format="Refname is %(refname)" >actual &&
test_cmp expect actual
ok 29 - git branch --format option
expecting success of 3203.30 'git branch with --format=%(rest) must fail':
test_must_fail git branch --format="%(rest)" >actual
fatal: this command reject atom %(rest)
ok 30 - git branch with --format=%(rest) must fail
expecting success of 3203.31 'worktree colors correct':
cat >expect <<-EOF &&
* <GREEN>(HEAD detached from fromtag)<RESET>
ambiguous<RESET>
branch-one<RESET>
+ <CYAN>branch-two<RESET>
main<RESET>
ref-to-branch<RESET> -> branch-one
ref-to-remote<RESET> -> origin/branch-one
EOF
git worktree add worktree_dir branch-two &&
git branch --color >actual.raw &&
rm -r worktree_dir &&
git worktree prune &&
test_decode_color <actual.raw >actual &&
test_cmp expect actual
Preparing worktree (checking out 'branch-two')
HEAD is now at f39a923 one
ok 31 - worktree colors correct
expecting success of 3203.32 'set up color tests':
echo "<RED>main<RESET>" >expect.color &&
echo "main" >expect.bare &&
color_args="--format=%(color:red)%(refname:short) --list main"
ok 32 - set up color tests
expecting success of 3203.33 '%(color) omitted without tty':
TERM=vt100 git branch $color_args >actual.raw &&
test_decode_color <actual.raw >actual &&
test_cmp expect.bare actual
ok 33 - %(color) omitted without tty
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 3203.34 '%(color) present with tty':
test_terminal git branch $color_args >actual.raw &&
test_decode_color <actual.raw >actual &&
test_cmp expect.color actual
ok 34 - %(color) present with tty
expecting success of 3203.35 '--color overrides auto-color':
git branch --color $color_args >actual.raw &&
test_decode_color <actual.raw >actual &&
test_cmp expect.color actual
ok 35 - --color overrides auto-color
expecting success of 3203.36 'verbose output lists worktree path':
one=$(git rev-parse --short HEAD) &&
two=$(git rev-parse --short main) &&
cat >expect <<-EOF &&
* (HEAD detached from fromtag) $one one
ambiguous $one one
branch-one $two two
+ branch-two $one ($(pwd)/worktree_dir) one
main $two two
ref-to-branch $two two
ref-to-remote $two two
EOF
git worktree add worktree_dir branch-two &&
git branch -vv >actual &&
rm -r worktree_dir &&
git worktree prune &&
test_cmp expect actual
Preparing worktree (checking out 'branch-two')
HEAD is now at f39a923 one
ok 36 - verbose output lists worktree path
# passed all 36 test(s)
1..36
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3204-branch-name-interpretation.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3204-branch-name-interpretation/.git/
expecting success of 3204.1 'set up repo':
test_commit one &&
test_commit two &&
git remote add origin foo.git
[main (root-commit) d79ce16] one
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 one.t
[main 139b20d] two
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 two.t
ok 1 - set up repo
expecting success of 3204.2 'update branch via @{-1}':
git branch previous one &&
git checkout previous &&
git checkout main &&
git branch -f @{-1} two &&
expect_branch previous two
Switched to branch 'previous'
Switched to branch 'main'
ok 2 - update branch via @{-1}
expecting success of 3204.3 'update branch via local @{upstream}':
git branch local one &&
git branch --set-upstream-to=local &&
git branch -f @{upstream} two &&
expect_branch local two
branch 'main' set up to track 'local'.
ok 3 - update branch via local @{upstream}
expecting success of 3204.4 'disallow updating branch via remote @{upstream}':
git update-ref refs/remotes/origin/remote one &&
git branch --set-upstream-to=origin/remote &&
test_must_fail git branch -f @{upstream} two
branch 'main' set up to track 'origin/remote'.
fatal: '@{upstream}' is not a valid branch name
ok 4 - disallow updating branch via remote @{upstream}
expecting success of 3204.5 'create branch with pseudo-qualified name':
git branch refs/heads/qualified two &&
expect_branch refs/heads/refs/heads/qualified two
ok 5 - create branch with pseudo-qualified name
expecting success of 3204.6 'force-copy a branch to itself via @{-1} is no-op':
git branch -t copiable main &&
git checkout copiable &&
git checkout - &&
git branch -C @{-1} copiable &&
git config --get-all branch.copiable.merge >actual &&
echo refs/heads/main >expect &&
test_cmp expect actual
branch 'copiable' set up to track 'main'.
Switched to branch 'copiable'
Your branch is up to date with 'main'.
Switched to branch 'main'
Your branch is ahead of 'origin/remote' by 1 commit.
(use "git push" to publish your local commits)
ok 6 - force-copy a branch to itself via @{-1} is no-op
expecting success of 3204.7 'delete branch via @{-1}':
git branch previous-del &&
git checkout previous-del &&
git checkout main &&
git branch -D @{-1} &&
expect_deleted previous-del
Switched to branch 'previous-del'
Switched to branch 'main'
Your branch is ahead of 'origin/remote' by 1 commit.
(use "git push" to publish your local commits)
Deleted branch previous-del (was 139b20d).
fatal: Needed a single revision
ok 7 - delete branch via @{-1}
expecting success of 3204.8 'delete branch via local @{upstream}':
git branch local-del &&
git branch --set-upstream-to=local-del &&
git branch -D @{upstream} &&
expect_deleted local-del
branch 'main' set up to track 'local-del'.
Deleted branch local-del (was 139b20d).
fatal: Needed a single revision
ok 8 - delete branch via local @{upstream}
expecting success of 3204.9 'delete branch via remote @{upstream}':
git update-ref refs/remotes/origin/remote-del two &&
git branch --set-upstream-to=origin/remote-del &&
git branch -r -D @{upstream} &&
expect_deleted origin/remote-del
branch 'main' set up to track 'origin/remote-del'.
Deleted remote-tracking branch origin/remote-del (was 139b20d).
fatal: Needed a single revision
ok 9 - delete branch via remote @{upstream}
expecting success of 3204.10 'delete @{upstream} expansion matches -r option':
git update-ref refs/remotes/origin/remote-del two &&
git branch --set-upstream-to=origin/remote-del &&
git update-ref refs/heads/origin/remote-del two &&
git update-ref refs/heads/remotes/origin/remote-del two &&
test_must_fail git branch -D @{upstream} &&
expect_branch refs/heads/origin/remote-del two &&
expect_branch refs/heads/remotes/origin/remote-del two
branch 'main' set up to track 'origin/remote-del'.
error: branch '@{upstream}' not found.
ok 10 - delete @{upstream} expansion matches -r option
expecting success of 3204.11 'disallow deleting remote branch via @{-1}':
git update-ref refs/remotes/origin/previous one &&
git checkout -b origin/previous two &&
git checkout main &&
test_must_fail git branch -r -D @{-1} &&
expect_branch refs/remotes/origin/previous one &&
expect_branch refs/heads/origin/previous two
Switched to a new branch 'origin/previous'
Switched to branch 'main'
Your branch is up to date with 'remotes/origin/remote-del'.
error: remote-tracking branch '@{-1}' not found.
ok 11 - disallow deleting remote branch via @{-1}
expecting success of 3204.12 'create branch named "@"':
git branch -f @ one &&
expect_branch refs/heads/@ one
ok 12 - create branch named "@"
expecting success of 3204.13 'delete branch named "@"':
git update-ref refs/heads/@ two &&
git branch -D @ &&
expect_deleted refs/heads/@
Deleted branch @ (was 139b20d).
fatal: Needed a single revision
ok 13 - delete branch named "@"
expecting success of 3204.14 'checkout does not treat remote @{upstream} as a branch':
git update-ref refs/remotes/origin/checkout one &&
git branch --set-upstream-to=origin/checkout &&
git update-ref refs/heads/origin/checkout two &&
git update-ref refs/heads/remotes/origin/checkout two &&
git checkout @{upstream} &&
expect_branch HEAD one
branch 'main' set up to track 'origin/checkout'.
warning: refname '@{upstream}' is ambiguous.
Note: switching to '@{upstream}'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at d79ce16 one
ok 14 - checkout does not treat remote @{upstream} as a branch
expecting success of 3204.15 'edit-description via @{-1}':
git checkout -b desc-branch &&
git checkout -b non-desc-branch &&
write_script editor <<-\EOF &&
echo "Branch description" >"$1"
EOF
EDITOR=./editor git branch --edit-description @{-1} &&
test_must_fail git config branch.non-desc-branch.description &&
git config branch.desc-branch.description >actual &&
printf "Branch description\n\n" >expect &&
test_cmp expect actual
Switched to a new branch 'desc-branch'
Switched to a new branch 'non-desc-branch'
ok 15 - edit-description via @{-1}
expecting success of 3204.16 'modify branch upstream via "@{-1}" and "@{-1}@{upstream}"':
git checkout -b upstream-branch &&
git checkout -b upstream-other -t upstream-branch &&
git branch --set-upstream-to upstream-other @{-1} &&
git config branch.upstream-branch.merge >actual &&
echo "refs/heads/upstream-other" >expect &&
test_cmp expect actual &&
git branch --unset-upstream @{-1}@{upstream} &&
test_must_fail git config branch.upstream-other.merge
Switched to a new branch 'upstream-branch'
Switched to a new branch 'upstream-other'
branch 'upstream-other' set up to track 'upstream-branch'.
branch 'upstream-branch' set up to track 'upstream-other'.
ok 16 - modify branch upstream via "@{-1}" and "@{-1}@{upstream}"
# passed all 16 test(s)
1..16
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3205-branch-color.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3205-branch-color/.git/
expecting success of 3205.1 'set up some sample branches':
test_commit foo &&
git branch -M main &&
git update-ref refs/remotes/origin/main HEAD &&
git update-ref refs/heads/other HEAD
[master (root-commit) ddd63c9] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
ok 1 - set up some sample branches
expecting success of 3205.2 'set up some color config':
git config color.branch.local blue &&
git config color.branch.remote yellow &&
git config color.branch.current cyan
ok 2 - set up some color config
expecting success of 3205.3 'regular output shows colors':
cat >expect <<-\EOF &&
* <CYAN>main<RESET>
<BLUE>other<RESET>
<YELLOW>remotes/origin/main<RESET>
EOF
git branch --color -a >actual.raw &&
test_decode_color <actual.raw >actual &&
test_cmp expect actual
ok 3 - regular output shows colors
expecting success of 3205.4 'verbose output shows colors':
oid=$(git rev-parse --short HEAD) &&
cat >expect <<-EOF &&
* <CYAN>main <RESET> $oid foo
<BLUE>other <RESET> $oid foo
<YELLOW>remotes/origin/main<RESET> $oid foo
EOF
git branch --color -v -a >actual.raw &&
test_decode_color <actual.raw >actual &&
test_cmp expect actual
ok 4 - verbose output shows colors
# passed all 4 test(s)
1..4
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3206-range-diff.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3206-range-diff/.git/
expecting success of 3206.1 'setup':
git fast-import <"$TEST_DIRECTORY"/t3206/history.export &&
test_oid_cache <<-\EOF
# topic
t1 sha1:4de457d
t2 sha1:fccce22
t3 sha1:147e64e
t4 sha1:a63e992
t1 sha256:b89f8b9
t2 sha256:5f12aad
t3 sha256:ea8b273
t4 sha256:14b7336
# unmodified
u1 sha1:35b9b25
u2 sha1:de345ab
u3 sha1:9af6654
u4 sha1:2901f77
u1 sha256:e3731be
u2 sha256:14fadf8
u3 sha256:736c4bc
u4 sha256:673e77d
# topic (abbrev=10)
t1_abbrev sha1:4de457d2c0
t2_abbrev sha1:fccce22f8c
t3_abbrev sha1:147e64ef53
t4_abbrev sha1:a63e992599
t1_abbrev sha256:b89f8b9092
t2_abbrev sha256:5f12aadf34
t3_abbrev sha256:ea8b273a6c
t4_abbrev sha256:14b73361fc
# unmodified (abbrev=10)
u1_abbrev sha1:35b9b25f76
u2_abbrev sha1:de345ab3de
u3_abbrev sha1:9af6654000
u4_abbrev sha1:2901f773f3
u1_abbrev sha256:e3731be242
u2_abbrev sha256:14fadf8cee
u3_abbrev sha256:736c4bcb44
u4_abbrev sha256:673e77d589
# reordered
r1 sha1:aca177a
r2 sha1:14ad629
r3 sha1:ee58208
r4 sha1:307b27a
r1 sha256:f59d3aa
r2 sha256:fb261a8
r3 sha256:cb2649b
r4 sha256:958577e
# removed (deleted)
d1 sha1:7657159
d2 sha1:43d84d3
d3 sha1:a740396
d1 sha256:e312513
d2 sha256:eb19258
d3 sha256:1ccb3c1
# added
a1 sha1:2716022
a2 sha1:b62accd
a3 sha1:df46cfa
a4 sha1:3e64548
a5 sha1:12b4063
a1 sha256:d724f4d
a2 sha256:1de7762
a3 sha256:e159431
a4 sha256:b3e483c
a5 sha256:90866a7
# rebased
b1 sha1:cc9c443
b2 sha1:c5d9641
b3 sha1:28cc2b6
b4 sha1:5628ab7
b5 sha1:a31b12e
b1 sha256:a1a8717
b2 sha256:20a5862
b3 sha256:587172a
b4 sha256:2721c5d
b5 sha256:7b57864
# changed
c1 sha1:a4b3333
c2 sha1:f51d370
c3 sha1:0559556
c4 sha1:d966c5c
c1 sha256:f8c2b9d
c2 sha256:3fb6318
c3 sha256:168ab68
c4 sha256:3526539
# changed-message
m1 sha1:f686024
m2 sha1:4ab067d
m3 sha1:b9cb956
m4 sha1:8add5f1
m1 sha256:31e6281
m2 sha256:a06bf1b
m3 sha256:82dc654
m4 sha256:48470c5
# renamed
n1 sha1:f258d75
n2 sha1:017b62d
n3 sha1:3ce7af6
n4 sha1:1e6226b
n1 sha256:ad52114
n2 sha256:3b54c8f
n3 sha256:3b0a644
n4 sha256:e461653
# mode change
o1 sha1:4d39cb3
o2 sha1:26c107f
o3 sha1:4c1e0f5
o1 sha256:d0dd598
o2 sha256:c4a279e
o3 sha256:78459d7
# added and removed
s1 sha1:096b1ba
s2 sha1:d92e698
s3 sha1:9a1db4d
s4 sha1:fea3b5c
s1 sha256:a7f9134
s2 sha256:b4c2580
s3 sha256:1d62aa2
s4 sha256:48160e8
# Empty delimiter (included so lines match neatly)
__ sha1:-------
__ sha256:-------
EOF
fast-import statistics:
---------------------------------------------------------------------
Alloc'd objects: 5000
Total objects: 83 ( 21 duplicates )
blobs : 14 ( 0 duplicates 0 deltas of 11 attempts)
trees : 24 ( 21 duplicates 1 deltas of 23 attempts)
commits: 45 ( 0 duplicates 0 deltas of 0 attempts)
tags : 0 ( 0 duplicates 0 deltas of 0 attempts)
Total branches: 12 ( 14 loads )
marks: 1024 ( 59 unique )
atoms: 5
Memory total: 2446 KiB
pools: 2133 KiB
objects: 312 KiB
---------------------------------------------------------------------
pack_report: getpagesize() = 4096
pack_report: core.packedGitWindowSize = 33554432
pack_report: core.packedGitLimit = 268435456
pack_report: pack_used_ctr = 23
pack_report: pack_mmap_calls = 13
pack_report: pack_open_windows = 0 / 1
pack_report: pack_mapped = 0 / 8521
---------------------------------------------------------------------
ok 1 - setup
expecting success of 3206.2 'simple A..B A..C (unmodified)':
git range-diff --no-color main..topic main..unmodified \
>actual &&
cat >expect <<-EOF &&
1: $(test_oid t1) = 1: $(test_oid u1) s/5/A/
2: $(test_oid t2) = 2: $(test_oid u2) s/4/A/
3: $(test_oid t3) = 3: $(test_oid u3) s/11/B/
4: $(test_oid t4) = 4: $(test_oid u4) s/12/B/
EOF
test_cmp expect actual
ok 2 - simple A..B A..C (unmodified)
expecting success of 3206.3 'simple B...C (unmodified)':
git range-diff --no-color topic...unmodified >actual &&
# same "expect" as above
test_cmp expect actual
ok 3 - simple B...C (unmodified)
expecting success of 3206.4 'simple A B C (unmodified)':
git range-diff --no-color main topic unmodified >actual &&
# same "expect" as above
test_cmp expect actual
ok 4 - simple A B C (unmodified)
expecting success of 3206.5 'simple A..B A..C (unmodified) with --abbrev':
git range-diff --no-color --abbrev=10 main..topic main..unmodified \
>actual &&
cat >expect <<-EOF &&
1: $(test_oid t1_abbrev) = 1: $(test_oid u1_abbrev) s/5/A/
2: $(test_oid t2_abbrev) = 2: $(test_oid u2_abbrev) s/4/A/
3: $(test_oid t3_abbrev) = 3: $(test_oid u3_abbrev) s/11/B/
4: $(test_oid t4_abbrev) = 4: $(test_oid u4_abbrev) s/12/B/
EOF
test_cmp expect actual
ok 5 - simple A..B A..C (unmodified) with --abbrev
expecting success of 3206.6 'A^! and A^-<n> (unmodified)':
git range-diff --no-color topic^! unmodified^-1 >actual &&
cat >expect <<-EOF &&
1: $(test_oid t4) = 1: $(test_oid u4) s/12/B/
EOF
test_cmp expect actual
ok 6 - A^! and A^-<n> (unmodified)
expecting success of 3206.7 'A^{/..} is not mistaken for a range':
test_must_fail git range-diff topic^.. topic^{/..} -- 2>error &&
test_i18ngrep "not a commit range" error
fatal: not a commit range: 'topic^{/..}'
ok 7 - A^{/..} is not mistaken for a range
expecting success of 3206.8 'trivial reordering':
git range-diff --no-color main topic reordered >actual &&
cat >expect <<-EOF &&
1: $(test_oid t1) = 1: $(test_oid r1) s/5/A/
3: $(test_oid t3) = 2: $(test_oid r2) s/11/B/
4: $(test_oid t4) = 3: $(test_oid r3) s/12/B/
2: $(test_oid t2) = 4: $(test_oid r4) s/4/A/
EOF
test_cmp expect actual
ok 8 - trivial reordering
expecting success of 3206.9 'removed a commit':
git range-diff --no-color main topic removed >actual &&
cat >expect <<-EOF &&
1: $(test_oid t1) = 1: $(test_oid d1) s/5/A/
2: $(test_oid t2) < -: $(test_oid __) s/4/A/
3: $(test_oid t3) = 2: $(test_oid d2) s/11/B/
4: $(test_oid t4) = 3: $(test_oid d3) s/12/B/
EOF
test_cmp expect actual
ok 9 - removed a commit
expecting success of 3206.10 'added a commit':
git range-diff --no-color main topic added >actual &&
cat >expect <<-EOF &&
1: $(test_oid t1) = 1: $(test_oid a1) s/5/A/
2: $(test_oid t2) = 2: $(test_oid a2) s/4/A/
-: $(test_oid __) > 3: $(test_oid a3) s/6/A/
3: $(test_oid t3) = 4: $(test_oid a4) s/11/B/
4: $(test_oid t4) = 5: $(test_oid a5) s/12/B/
EOF
test_cmp expect actual
ok 10 - added a commit
expecting success of 3206.11 'new base, A B C':
git range-diff --no-color main topic rebased >actual &&
cat >expect <<-EOF &&
1: $(test_oid t1) = 1: $(test_oid b1) s/5/A/
2: $(test_oid t2) = 2: $(test_oid b2) s/4/A/
3: $(test_oid t3) = 3: $(test_oid b3) s/11/B/
4: $(test_oid t4) = 4: $(test_oid b4) s/12/B/
EOF
test_cmp expect actual
ok 11 - new base, A B C
expecting success of 3206.12 'new base, B...C':
# this syntax includes the commits from main!
git range-diff --no-color topic...rebased >actual &&
cat >expect <<-EOF &&
-: $(test_oid __) > 1: $(test_oid b5) unrelated
1: $(test_oid t1) = 2: $(test_oid b1) s/5/A/
2: $(test_oid t2) = 3: $(test_oid b2) s/4/A/
3: $(test_oid t3) = 4: $(test_oid b3) s/11/B/
4: $(test_oid t4) = 5: $(test_oid b4) s/12/B/
EOF
test_cmp expect actual
ok 12 - new base, B...C
expecting success of 3206.13 'changed commit':
git range-diff --no-color topic...changed >actual &&
cat >expect <<-EOF &&
1: $(test_oid t1) = 1: $(test_oid c1) s/5/A/
2: $(test_oid t2) = 2: $(test_oid c2) s/4/A/
3: $(test_oid t3) ! 3: $(test_oid c3) s/11/B/
@@ file: A
9
10
-11
-+B
++BB
12
13
14
4: $(test_oid t4) ! 4: $(test_oid c4) s/12/B/
@@ file
@@ file: A
9
10
- B
+ BB
-12
+B
13
EOF
test_cmp expect actual
ok 13 - changed commit
expecting success of 3206.14 'changed commit with --no-patch diff option':
git range-diff --no-color --no-patch topic...changed >actual &&
cat >expect <<-EOF &&
1: $(test_oid t1) = 1: $(test_oid c1) s/5/A/
2: $(test_oid t2) = 2: $(test_oid c2) s/4/A/
3: $(test_oid t3) ! 3: $(test_oid c3) s/11/B/
4: $(test_oid t4) ! 4: $(test_oid c4) s/12/B/
EOF
test_cmp expect actual
ok 14 - changed commit with --no-patch diff option
expecting success of 3206.15 'changed commit with --stat diff option':
git range-diff --no-color --stat topic...changed >actual &&
cat >expect <<-EOF &&
1: $(test_oid t1) = 1: $(test_oid c1) s/5/A/
2: $(test_oid t2) = 2: $(test_oid c2) s/4/A/
3: $(test_oid t3) ! 3: $(test_oid c3) s/11/B/
a => b | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
4: $(test_oid t4) ! 4: $(test_oid c4) s/12/B/
a => b | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
EOF
test_cmp expect actual
ok 15 - changed commit with --stat diff option
expecting success of 3206.16 'changed commit with sm config':
git range-diff --no-color --submodule=log topic...changed >actual &&
cat >expect <<-EOF &&
1: $(test_oid t1) = 1: $(test_oid c1) s/5/A/
2: $(test_oid t2) = 2: $(test_oid c2) s/4/A/
3: $(test_oid t3) ! 3: $(test_oid c3) s/11/B/
@@ file: A
9
10
-11
-+B
++BB
12
13
14
4: $(test_oid t4) ! 4: $(test_oid c4) s/12/B/
@@ file
@@ file: A
9
10
- B
+ BB
-12
+B
13
EOF
test_cmp expect actual
ok 16 - changed commit with sm config
expecting success of 3206.17 'renamed file':
git range-diff --no-color --submodule=log topic...renamed-file >actual &&
sed s/Z/\ /g >expect <<-EOF &&
1: $(test_oid t1) = 1: $(test_oid n1) s/5/A/
2: $(test_oid t2) ! 2: $(test_oid n2) s/4/A/
@@ Metadata
ZAuthor: Thomas Rast <trast@inf.ethz.ch>
Z
Z ## Commit message ##
- s/4/A/
+ s/4/A/ + rename file
Z
- ## file ##
+ ## file => renamed-file ##
Z@@
Z 1
Z 2
3: $(test_oid t3) ! 3: $(test_oid n3) s/11/B/
@@ Metadata
Z ## Commit message ##
Z s/11/B/
Z
- ## file ##
-@@ file: A
+ ## renamed-file ##
+@@ renamed-file: A
Z 8
Z 9
Z 10
4: $(test_oid t4) ! 4: $(test_oid n4) s/12/B/
@@ Metadata
Z ## Commit message ##
Z s/12/B/
Z
- ## file ##
-@@ file: A
+ ## renamed-file ##
+@@ renamed-file: A
Z 9
Z 10
Z B
EOF
test_cmp expect actual
ok 17 - renamed file
expecting success of 3206.18 'file with mode only change':
git range-diff --no-color --submodule=log topic...mode-only-change >actual &&
sed s/Z/\ /g >expect <<-EOF &&
1: $(test_oid t2) ! 1: $(test_oid o1) s/4/A/
@@ Metadata
ZAuthor: Thomas Rast <trast@inf.ethz.ch>
Z
Z ## Commit message ##
- s/4/A/
+ s/4/A/ + add other-file
Z
Z ## file ##
Z@@
@@ file
Z A
Z 6
Z 7
+
+ ## other-file (new) ##
2: $(test_oid t3) ! 2: $(test_oid o2) s/11/B/
@@ Metadata
ZAuthor: Thomas Rast <trast@inf.ethz.ch>
Z
Z ## Commit message ##
- s/11/B/
+ s/11/B/ + mode change other-file
Z
Z ## file ##
Z@@ file: A
@@ file: A
Z 12
Z 13
Z 14
+
+ ## other-file (mode change 100644 => 100755) ##
3: $(test_oid t4) = 3: $(test_oid o3) s/12/B/
EOF
test_cmp expect actual
ok 18 - file with mode only change
expecting success of 3206.19 'file added and later removed':
git range-diff --no-color --submodule=log topic...added-removed >actual &&
sed s/Z/\ /g >expect <<-EOF &&
1: $(test_oid t1) = 1: $(test_oid s1) s/5/A/
2: $(test_oid t2) ! 2: $(test_oid s2) s/4/A/
@@ Metadata
ZAuthor: Thomas Rast <trast@inf.ethz.ch>
Z
Z ## Commit message ##
- s/4/A/
+ s/4/A/ + new-file
Z
Z ## file ##
Z@@
@@ file
Z A
Z 6
Z 7
+
+ ## new-file (new) ##
3: $(test_oid t3) ! 3: $(test_oid s3) s/11/B/
@@ Metadata
ZAuthor: Thomas Rast <trast@inf.ethz.ch>
Z
Z ## Commit message ##
- s/11/B/
+ s/11/B/ + remove file
Z
Z ## file ##
Z@@ file: A
@@ file: A
Z 12
Z 13
Z 14
+
+ ## new-file (deleted) ##
4: $(test_oid t4) = 4: $(test_oid s4) s/12/B/
EOF
test_cmp expect actual
ok 19 - file added and later removed
expecting success of 3206.20 'no commits on one side':
git commit --amend -m "new message" &&
git range-diff main HEAD@{1} HEAD
[main b4b08e4] new message
Author: Thomas Rast <trast@inf.ethz.ch>
Date: Mon Jul 22 11:25:27 2013 +0200
1 file changed, 20 deletions(-)
delete mode 100644 file
1: a31b12e < -: ------- unrelated
ok 20 - no commits on one side
expecting success of 3206.21 'changed message':
git range-diff --no-color topic...changed-message >actual &&
sed s/Z/\ /g >expect <<-EOF &&
1: $(test_oid t1) = 1: $(test_oid m1) s/5/A/
2: $(test_oid t2) ! 2: $(test_oid m2) s/4/A/
@@ Metadata
Z ## Commit message ##
Z s/4/A/
Z
+ Also a silly comment here!
+
Z ## file ##
Z@@
Z 1
3: $(test_oid t3) = 3: $(test_oid m3) s/11/B/
4: $(test_oid t4) = 4: $(test_oid m4) s/12/B/
EOF
test_cmp expect actual
ok 21 - changed message
expecting success of 3206.22 'dual-coloring':
sed -e "s|^:||" >expect <<-EOF &&
:<YELLOW>1: $(test_oid c1) = 1: $(test_oid m1) s/5/A/<RESET>
:<RED>2: $(test_oid c2) <RESET><YELLOW>!<RESET><GREEN> 2: $(test_oid m2)<RESET><YELLOW> s/4/A/<RESET>
: <REVERSE><CYAN>@@<RESET> <RESET>Metadata<RESET>
: ## Commit message ##<RESET>
: s/4/A/<RESET>
: <RESET>
: <REVERSE><GREEN>+<RESET><BOLD> Also a silly comment here!<RESET>
: <REVERSE><GREEN>+<RESET>
: ## file ##<RESET>
: <CYAN> @@<RESET>
: 1<RESET>
:<RED>3: $(test_oid c3) <RESET><YELLOW>!<RESET><GREEN> 3: $(test_oid m3)<RESET><YELLOW> s/11/B/<RESET>
: <REVERSE><CYAN>@@<RESET> <RESET>file: A<RESET>
: 9<RESET>
: 10<RESET>
: <RED> -11<RESET>
: <REVERSE><RED>-<RESET><FAINT;GREEN>+BB<RESET>
: <REVERSE><GREEN>+<RESET><BOLD;GREEN>+B<RESET>
: 12<RESET>
: 13<RESET>
: 14<RESET>
:<RED>4: $(test_oid c4) <RESET><YELLOW>!<RESET><GREEN> 4: $(test_oid m4)<RESET><YELLOW> s/12/B/<RESET>
: <REVERSE><CYAN>@@<RESET> <RESET>file<RESET>
: <CYAN> @@ file: A<RESET>
: 9<RESET>
: 10<RESET>
: <REVERSE><RED>-<RESET><FAINT> BB<RESET>
: <REVERSE><GREEN>+<RESET><BOLD> B<RESET>
: <RED> -12<RESET>
: <GREEN> +B<RESET>
: 13<RESET>
EOF
git range-diff changed...changed-message --color --dual-color >actual.raw &&
test_decode_color >actual <actual.raw &&
test_cmp expect actual
ok 22 - dual-coloring
expecting success of 3206.23 'format-patch --range-diff=topic':
git format-patch --cover-letter --range-diff=$prev \
main..unmodified >actual &&
test_when_finished "rm 000?-*" &&
test_line_count = 5 actual &&
test_i18ngrep "^Range-diff:$" 0000-* &&
grep "= 1: .* s/5/A" 0000-* &&
grep "= 2: .* s/4/A" 0000-* &&
grep "= 3: .* s/11/B" 0000-* &&
grep "= 4: .* s/12/B" 0000-*
Range-diff:
1: 4de457d = 1: 35b9b25 s/5/A/
2: fccce22 = 2: de345ab s/4/A/
3: 147e64e = 3: 9af6654 s/11/B/
4: a63e992 = 4: 2901f77 s/12/B/
ok 23 - format-patch --range-diff=topic
expecting success of 3206.24 'format-patch --range-diff=main..topic':
git format-patch --cover-letter --range-diff=$prev \
main..unmodified >actual &&
test_when_finished "rm 000?-*" &&
test_line_count = 5 actual &&
test_i18ngrep "^Range-diff:$" 0000-* &&
grep "= 1: .* s/5/A" 0000-* &&
grep "= 2: .* s/4/A" 0000-* &&
grep "= 3: .* s/11/B" 0000-* &&
grep "= 4: .* s/12/B" 0000-*
Range-diff:
1: 4de457d = 1: 35b9b25 s/5/A/
2: fccce22 = 2: de345ab s/4/A/
3: 147e64e = 3: 9af6654 s/11/B/
4: a63e992 = 4: 2901f77 s/12/B/
ok 24 - format-patch --range-diff=main..topic
expecting success of 3206.25 'format-patch --range-diff as commentary':
git format-patch --range-diff=HEAD~1 HEAD~1 >actual &&
test_when_finished "rm 0001-*" &&
test_line_count = 1 actual &&
test_i18ngrep "^Range-diff:$" 0001-* &&
grep "> 1: .* new message" 0001-*
Range-diff:
-: ------- > 1: b4b08e4 new message
ok 25 - format-patch --range-diff as commentary
expecting success of 3206.26 'format-patch --range-diff reroll-count with a non-integer':
git format-patch --range-diff=HEAD~1 -v2.9 HEAD~1 >actual &&
test_when_finished "rm v2.9-0001-*" &&
test_line_count = 1 actual &&
test_i18ngrep "^Range-diff:$" v2.9-0001-* &&
grep "> 1: .* new message" v2.9-0001-*
Range-diff:
-: ------- > 1: b4b08e4 new message
ok 26 - format-patch --range-diff reroll-count with a non-integer
expecting success of 3206.27 'format-patch --range-diff reroll-count with a integer':
git format-patch --range-diff=HEAD~1 -v2 HEAD~1 >actual &&
test_when_finished "rm v2-0001-*" &&
test_line_count = 1 actual &&
test_i18ngrep "^Range-diff ..* v1:$" v2-0001-* &&
grep "> 1: .* new message" v2-0001-*
Range-diff against v1:
-: ------- > 1: b4b08e4 new message
ok 27 - format-patch --range-diff reroll-count with a integer
expecting success of 3206.28 'format-patch --range-diff with v0':
git format-patch --range-diff=HEAD~1 -v0 HEAD~1 >actual &&
test_when_finished "rm v0-0001-*" &&
test_line_count = 1 actual &&
test_i18ngrep "^Range-diff:$" v0-0001-* &&
grep "> 1: .* new message" v0-0001-*
Range-diff:
-: ------- > 1: b4b08e4 new message
ok 28 - format-patch --range-diff with v0
expecting success of 3206.29 'range-diff overrides diff.noprefix internally':
git -c diff.noprefix=true range-diff HEAD^...
-: ------- > 1: b4b08e4 new message
ok 29 - range-diff overrides diff.noprefix internally
expecting success of 3206.30 'basic with modified format.pretty with suffix':
git -c format.pretty="format:commit %H%d%n" range-diff \
main..topic main..unmodified
1: 4de457d = 1: 35b9b25 s/5/A/
2: fccce22 = 2: de345ab s/4/A/
3: 147e64e = 3: 9af6654 s/11/B/
4: a63e992 = 4: 2901f77 s/12/B/
ok 30 - basic with modified format.pretty with suffix
expecting success of 3206.31 'basic with modified format.pretty without "commit "':
git -c format.pretty="format:%H%n" range-diff \
main..topic main..unmodified
1: 4de457d = 1: 35b9b25 s/5/A/
2: fccce22 = 2: de345ab s/4/A/
3: 147e64e = 3: 9af6654 s/11/B/
4: a63e992 = 4: 2901f77 s/12/B/
ok 31 - basic with modified format.pretty without "commit "
expecting success of 3206.32 'range-diff compares notes by default':
git notes add -m "topic note" topic &&
git notes add -m "unmodified note" unmodified &&
test_when_finished git notes remove topic unmodified &&
git range-diff --no-color main..topic main..unmodified \
>actual &&
sed s/Z/\ /g >expect <<-EOF &&
1: $(test_oid t1) = 1: $(test_oid u1) s/5/A/
2: $(test_oid t2) = 2: $(test_oid u2) s/4/A/
3: $(test_oid t3) = 3: $(test_oid u3) s/11/B/
4: $(test_oid t4) ! 4: $(test_oid u4) s/12/B/
@@ Commit message
Z
Z
Z ## Notes ##
- topic note
+ unmodified note
Z
Z ## file ##
Z@@ file: A
EOF
test_cmp expect actual
Removing note for object topic
Removing note for object unmodified
ok 32 - range-diff compares notes by default
expecting success of 3206.33 'range-diff with --no-notes':
git notes add -m "topic note" topic &&
git notes add -m "unmodified note" unmodified &&
test_when_finished git notes remove topic unmodified &&
git range-diff --no-color --no-notes main..topic main..unmodified \
>actual &&
cat >expect <<-EOF &&
1: $(test_oid t1) = 1: $(test_oid u1) s/5/A/
2: $(test_oid t2) = 2: $(test_oid u2) s/4/A/
3: $(test_oid t3) = 3: $(test_oid u3) s/11/B/
4: $(test_oid t4) = 4: $(test_oid u4) s/12/B/
EOF
test_cmp expect actual
Removing note for object topic
Removing note for object unmodified
ok 33 - range-diff with --no-notes
expecting success of 3206.34 'range-diff with multiple --notes':
git notes --ref=note1 add -m "topic note1" topic &&
git notes --ref=note1 add -m "unmodified note1" unmodified &&
test_when_finished git notes --ref=note1 remove topic unmodified &&
git notes --ref=note2 add -m "topic note2" topic &&
git notes --ref=note2 add -m "unmodified note2" unmodified &&
test_when_finished git notes --ref=note2 remove topic unmodified &&
git range-diff --no-color --notes=note1 --notes=note2 main..topic main..unmodified \
>actual &&
sed s/Z/\ /g >expect <<-EOF &&
1: $(test_oid t1) = 1: $(test_oid u1) s/5/A/
2: $(test_oid t2) = 2: $(test_oid u2) s/4/A/
3: $(test_oid t3) = 3: $(test_oid u3) s/11/B/
4: $(test_oid t4) ! 4: $(test_oid u4) s/12/B/
@@ Commit message
Z
Z
Z ## Notes (note1) ##
- topic note1
+ unmodified note1
Z
Z
Z ## Notes (note2) ##
- topic note2
+ unmodified note2
Z
Z ## file ##
Z@@ file: A
EOF
test_cmp expect actual
Removing note for object topic
Removing note for object unmodified
Removing note for object topic
Removing note for object unmodified
ok 34 - range-diff with multiple --notes
expecting success of 3206.35 'format-patch --range-diff does not compare notes by default':
git notes add -m "topic note" topic &&
git notes add -m "unmodified note" unmodified &&
test_when_finished git notes remove topic unmodified &&
git format-patch --cover-letter --range-diff=$prev \
main..unmodified >actual &&
test_when_finished "rm 000?-*" &&
test_line_count = 5 actual &&
test_i18ngrep "^Range-diff:$" 0000-* &&
grep "= 1: .* s/5/A" 0000-* &&
grep "= 2: .* s/4/A" 0000-* &&
grep "= 3: .* s/11/B" 0000-* &&
grep "= 4: .* s/12/B" 0000-* &&
! grep "Notes" 0000-* &&
! grep "note" 0000-*
Range-diff:
1: 4de457d = 1: 35b9b25 s/5/A/
2: fccce22 = 2: de345ab s/4/A/
3: 147e64e = 3: 9af6654 s/11/B/
4: a63e992 = 4: 2901f77 s/12/B/
Removing note for object topic
Removing note for object unmodified
ok 35 - format-patch --range-diff does not compare notes by default
expecting success of 3206.36 'format-patch --range-diff with --no-notes':
git notes add -m "topic note" topic &&
git notes add -m "unmodified note" unmodified &&
test_when_finished git notes remove topic unmodified &&
git format-patch --no-notes --cover-letter --range-diff=$prev \
main..unmodified >actual &&
test_when_finished "rm 000?-*" &&
test_line_count = 5 actual &&
test_i18ngrep "^Range-diff:$" 0000-* &&
grep "= 1: .* s/5/A" 0000-* &&
grep "= 2: .* s/4/A" 0000-* &&
grep "= 3: .* s/11/B" 0000-* &&
grep "= 4: .* s/12/B" 0000-* &&
! grep "Notes" 0000-* &&
! grep "note" 0000-*
Range-diff:
1: 4de457d = 1: 35b9b25 s/5/A/
2: fccce22 = 2: de345ab s/4/A/
3: 147e64e = 3: 9af6654 s/11/B/
4: a63e992 = 4: 2901f77 s/12/B/
Removing note for object topic
Removing note for object unmodified
ok 36 - format-patch --range-diff with --no-notes
expecting success of 3206.37 'format-patch --range-diff with --notes':
git notes add -m "topic note" topic &&
git notes add -m "unmodified note" unmodified &&
test_when_finished git notes remove topic unmodified &&
git format-patch --notes --cover-letter --range-diff=$prev \
main..unmodified >actual &&
test_when_finished "rm 000?-*" &&
test_line_count = 5 actual &&
test_i18ngrep "^Range-diff:$" 0000-* &&
grep "= 1: .* s/5/A" 0000-* &&
grep "= 2: .* s/4/A" 0000-* &&
grep "= 3: .* s/11/B" 0000-* &&
grep "! 4: .* s/12/B" 0000-* &&
sed s/Z/\ /g >expect <<-EOF &&
@@ Commit message
Z
Z
Z ## Notes ##
- topic note
+ unmodified note
Z
Z ## file ##
Z@@ file: A
EOF
sed "/@@ Commit message/,/@@ file: A/!d" 0000-* >actual &&
test_cmp expect actual
Range-diff:
1: 4de457d = 1: 35b9b25 s/5/A/
2: fccce22 = 2: de345ab s/4/A/
3: 147e64e = 3: 9af6654 s/11/B/
4: a63e992 ! 4: 2901f77 s/12/B/
Removing note for object topic
Removing note for object unmodified
ok 37 - format-patch --range-diff with --notes
expecting success of 3206.38 'format-patch --range-diff with format.notes config':
git notes add -m "topic note" topic &&
git notes add -m "unmodified note" unmodified &&
test_when_finished git notes remove topic unmodified &&
test_config format.notes true &&
git format-patch --cover-letter --range-diff=$prev \
main..unmodified >actual &&
test_when_finished "rm 000?-*" &&
test_line_count = 5 actual &&
test_i18ngrep "^Range-diff:$" 0000-* &&
grep "= 1: .* s/5/A" 0000-* &&
grep "= 2: .* s/4/A" 0000-* &&
grep "= 3: .* s/11/B" 0000-* &&
grep "! 4: .* s/12/B" 0000-* &&
sed s/Z/\ /g >expect <<-EOF &&
@@ Commit message
Z
Z
Z ## Notes ##
- topic note
+ unmodified note
Z
Z ## file ##
Z@@ file: A
EOF
sed "/@@ Commit message/,/@@ file: A/!d" 0000-* >actual &&
test_cmp expect actual
Range-diff:
1: 4de457d = 1: 35b9b25 s/5/A/
2: fccce22 = 2: de345ab s/4/A/
3: 147e64e = 3: 9af6654 s/11/B/
4: a63e992 ! 4: 2901f77 s/12/B/
Removing note for object topic
Removing note for object unmodified
ok 38 - format-patch --range-diff with format.notes config
expecting success of 3206.39 'format-patch --range-diff with multiple notes':
git notes --ref=note1 add -m "topic note1" topic &&
git notes --ref=note1 add -m "unmodified note1" unmodified &&
test_when_finished git notes --ref=note1 remove topic unmodified &&
git notes --ref=note2 add -m "topic note2" topic &&
git notes --ref=note2 add -m "unmodified note2" unmodified &&
test_when_finished git notes --ref=note2 remove topic unmodified &&
git format-patch --notes=note1 --notes=note2 --cover-letter --range-diff=$prev \
main..unmodified >actual &&
test_when_finished "rm 000?-*" &&
test_line_count = 5 actual &&
test_i18ngrep "^Range-diff:$" 0000-* &&
grep "= 1: .* s/5/A" 0000-* &&
grep "= 2: .* s/4/A" 0000-* &&
grep "= 3: .* s/11/B" 0000-* &&
grep "! 4: .* s/12/B" 0000-* &&
sed s/Z/\ /g >expect <<-EOF &&
@@ Commit message
Z
Z
Z ## Notes (note1) ##
- topic note1
+ unmodified note1
Z
Z
Z ## Notes (note2) ##
- topic note2
+ unmodified note2
Z
Z ## file ##
Z@@ file: A
EOF
sed "/@@ Commit message/,/@@ file: A/!d" 0000-* >actual &&
test_cmp expect actual
Range-diff:
1: 4de457d = 1: 35b9b25 s/5/A/
2: fccce22 = 2: de345ab s/4/A/
3: 147e64e = 3: 9af6654 s/11/B/
4: a63e992 ! 4: 2901f77 s/12/B/
Removing note for object topic
Removing note for object unmodified
Removing note for object topic
Removing note for object unmodified
ok 39 - format-patch --range-diff with multiple notes
expecting success of 3206.40 '--left-only/--right-only':
git switch --orphan left-right &&
test_commit first &&
test_commit unmatched &&
test_commit common &&
git switch -C left-right first &&
git cherry-pick common &&
git range-diff -s --left-only ...common >actual &&
head_oid=$(git rev-parse --short HEAD) &&
common_oid=$(git rev-parse --short common) &&
echo "1: $head_oid = 2: $common_oid common" >expect &&
test_cmp expect actual
Switched to a new branch 'left-right'
[left-right (root-commit) 50e526b] first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 first.t
[left-right 8b3efcc] unmatched
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 unmatched.t
[left-right 66efeb1] common
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 common.t
Reset branch 'left-right'
[left-right a6d113e] common
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
1 file changed, 1 insertion(+)
create mode 100644 common.t
ok 40 - --left-only/--right-only
expecting success of 3206.41 'ranges with pathspecs':
git range-diff topic...mode-only-change -- other-file >actual &&
test_line_count = 2 actual &&
topic_oid=$(git rev-parse --short topic) &&
mode_change_oid=$(git rev-parse --short mode-only-change^) &&
file_change_oid=$(git rev-parse --short mode-only-change) &&
grep "$mode_change_oid" actual &&
! grep "$file_change_oid" actual &&
! grep "$topic_oid" actual
-: ------- > 2: 26c107f s/11/B/ + mode change other-file
ok 41 - ranges with pathspecs
expecting success of 3206.42 'submodule changes are shown irrespective of diff.submodule':
git init sub-repo &&
test_commit -C sub-repo sub-first &&
sub_oid1=$(git -C sub-repo rev-parse HEAD) &&
test_commit -C sub-repo sub-second &&
sub_oid2=$(git -C sub-repo rev-parse HEAD) &&
test_commit -C sub-repo sub-third &&
sub_oid3=$(git -C sub-repo rev-parse HEAD) &&
git checkout -b main-sub topic &&
git -c protocol.file.allow=always submodule add ./sub-repo sub &&
git -C sub checkout --detach sub-first &&
git commit -m "add sub" sub &&
sup_oid1=$(git rev-parse --short HEAD) &&
git checkout -b topic-sub &&
git -C sub checkout sub-second &&
git commit -m "change sub" sub &&
sup_oid2=$(git rev-parse --short HEAD) &&
git checkout -b modified-sub main-sub &&
git -C sub checkout sub-third &&
git commit -m "change sub" sub &&
sup_oid3=$(git rev-parse --short HEAD) &&
sup_oid0=$(test_oid __) &&
test_config diff.submodule log &&
git range-diff topic topic-sub modified-sub >actual &&
cat >expect <<-EOF &&
1: $sup_oid1 = 1: $sup_oid1 add sub
2: $sup_oid2 < -: $sup_oid0 change sub
-: $sup_oid0 > 2: $sup_oid3 change sub
EOF
test_cmp expect actual &&
test_config diff.submodule diff &&
git range-diff topic topic-sub modified-sub >actual &&
git range-diff --creation-factor=100 topic topic-sub modified-sub >actual &&
cat >expect <<-EOF &&
1: $sup_oid1 = 1: $sup_oid1 add sub
2: $sup_oid2 ! 2: $sup_oid3 change sub
@@ Commit message
## sub ##
@@
-Subproject commit $sub_oid1
-+Subproject commit $sub_oid2
++Subproject commit $sub_oid3
EOF
test_cmp expect actual &&
test_config diff.submodule diff &&
git range-diff --creation-factor=100 topic topic-sub modified-sub >actual &&
test_cmp expect actual
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3206-range-diff/sub-repo/.git/
[main (root-commit) 0dd48dc] sub-first
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 sub-first.t
[main 5aa4e7e] sub-second
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 sub-second.t
[main 57c2aa9] sub-third
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 sub-third.t
Switched to a new branch 'main-sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3206-range-diff/sub'...
done.
HEAD is now at 0dd48dc sub-first
[main-sub 3424d3a] add sub
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 160000 sub
Switched to a new branch 'topic-sub'
Previous HEAD position was 0dd48dc sub-first
HEAD is now at 5aa4e7e sub-second
[topic-sub f8a571b] change sub
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to a new branch 'modified-sub'
A .gitmodules
M sub
Previous HEAD position was 5aa4e7e sub-second
HEAD is now at 57c2aa9 sub-third
[modified-sub 3bd1f61] change sub
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+), 1 deletion(-)
ok 42 - submodule changes are shown irrespective of diff.submodule
# passed all 42 test(s)
1..42
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3200-branch.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/.git/
expecting success of 3200.1 'prepare a trivial repository':
echo Hello >A &&
git update-index --add A &&
git commit -m "Initial commit." &&
git branch -M main &&
echo World >>A &&
git update-index --add A &&
git commit -m "Second commit." &&
HEAD=$(git rev-parse --verify HEAD)
[main (root-commit) 2daebe9] Initial commit.
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A
[main da664a6] Second commit.
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
ok 1 - prepare a trivial repository
expecting success of 3200.2 'git branch --help should not have created a bogus branch':
test_might_fail git branch --man --help </dev/null >/dev/null 2>&1 &&
test_path_is_missing .git/refs/heads/--help
ok 2 - git branch --help should not have created a bogus branch
expecting success of 3200.3 'branch -h in broken repository':
mkdir broken &&
(
cd broken &&
git init -b main &&
>.git/refs/heads/main &&
test_expect_code 129 git branch -h >usage 2>&1
) &&
test_i18ngrep "[Uu]sage" broken/usage
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/broken/.git/
usage: git branch [<options>] [-r | -a] [--merged] [--no-merged]
ok 3 - branch -h in broken repository
expecting success of 3200.4 'git branch abc should create a branch':
git branch abc && test_path_is_file .git/refs/heads/abc
ok 4 - git branch abc should create a branch
expecting success of 3200.5 'git branch abc should fail when abc exists':
test_must_fail git branch abc
fatal: a branch named 'abc' already exists
ok 5 - git branch abc should fail when abc exists
expecting success of 3200.6 'git branch --force abc should fail when abc is checked out':
test_when_finished git switch main &&
git switch abc &&
test_must_fail git branch --force abc HEAD~1
Switched to branch 'abc'
fatal: cannot force update the branch 'abc' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t3200-branch'
Switched to branch 'main'
ok 6 - git branch --force abc should fail when abc is checked out
expecting success of 3200.7 'git branch --force abc should succeed when abc exists':
git rev-parse HEAD~1 >expect &&
git branch --force abc HEAD~1 &&
git rev-parse abc >actual &&
test_cmp expect actual
ok 7 - git branch --force abc should succeed when abc exists
expecting success of 3200.8 'git branch a/b/c should create a branch':
git branch a/b/c && test_path_is_file .git/refs/heads/a/b/c
ok 8 - git branch a/b/c should create a branch
expecting success of 3200.9 'git branch mb main... should create a branch':
git branch mb main... && test_path_is_file .git/refs/heads/mb
ok 9 - git branch mb main... should create a branch
expecting success of 3200.10 'git branch HEAD should fail':
test_must_fail git branch HEAD
fatal: 'HEAD' is not a valid branch name
ok 10 - git branch HEAD should fail
expecting success of 3200.11 'git branch --create-reflog d/e/f should create a branch and a log':
GIT_COMMITTER_DATE="2005-05-26 23:30" \
git -c core.logallrefupdates=false branch --create-reflog d/e/f &&
test_path_is_file .git/refs/heads/d/e/f &&
test_path_is_file .git/logs/refs/heads/d/e/f &&
test_cmp expect .git/logs/refs/heads/d/e/f
ok 11 - git branch --create-reflog d/e/f should create a branch and a log
expecting success of 3200.12 'git branch -d d/e/f should delete a branch and a log':
git branch -d d/e/f &&
test_path_is_missing .git/refs/heads/d/e/f &&
test_must_fail git reflog exists refs/heads/d/e/f
Deleted branch d/e/f (was da664a6).
ok 12 - git branch -d d/e/f should delete a branch and a log
expecting success of 3200.13 'git branch j/k should work after branch j has been deleted':
git branch j &&
git branch -d j &&
git branch j/k
Deleted branch j (was da664a6).
ok 13 - git branch j/k should work after branch j has been deleted
expecting success of 3200.14 'git branch l should work after branch l/m has been deleted':
git branch l/m &&
git branch -d l/m &&
git branch l
Deleted branch l/m (was da664a6).
ok 14 - git branch l should work after branch l/m has been deleted
expecting success of 3200.15 'git branch -m dumps usage':
test_expect_code 128 git branch -m 2>err &&
test_i18ngrep "branch name required" err
fatal: branch name required
ok 15 - git branch -m dumps usage
expecting success of 3200.16 'git branch -m m broken_symref should work':
test_when_finished "git branch -D broken_symref" &&
git branch --create-reflog m &&
git symbolic-ref refs/heads/broken_symref refs/heads/i_am_broken &&
git branch -m m broken_symref &&
git reflog exists refs/heads/broken_symref &&
test_must_fail git reflog exists refs/heads/i_am_broken
Deleted branch broken_symref (was da664a6).
ok 16 - git branch -m m broken_symref should work
expecting success of 3200.17 'git branch -m m m/m should work':
git branch --create-reflog m &&
git branch -m m m/m &&
git reflog exists refs/heads/m/m
ok 17 - git branch -m m m/m should work
expecting success of 3200.18 'git branch -m n/n n should work':
git branch --create-reflog n/n &&
git branch -m n/n n &&
git reflog exists refs/heads/n
ok 18 - git branch -m n/n n should work
expecting success of 3200.19 'git branch -m bbb should rename checked out branch':
test_when_finished git branch -D bbb &&
test_when_finished git checkout main &&
git checkout -b aaa &&
git commit --allow-empty -m "a new commit" &&
git rev-parse aaa@{0} >expect &&
git branch -m bbb &&
git rev-parse bbb@{1} >actual &&
test_cmp expect actual &&
git symbolic-ref HEAD >actual &&
echo refs/heads/bbb >expect &&
test_cmp expect actual
Switched to a new branch 'aaa'
[aaa a533b01] a new commit
Author: A U Thor <author@example.com>
Switched to branch 'main'
Deleted branch bbb (was a533b01).
ok 19 - git branch -m bbb should rename checked out branch
expecting success of 3200.20 'renaming checked out branch works with d/f conflict':
test_when_finished "git branch -D foo/bar || git branch -D foo" &&
test_when_finished git checkout main &&
git checkout -b foo &&
git branch -m foo/bar &&
git symbolic-ref HEAD >actual &&
echo refs/heads/foo/bar >expect &&
test_cmp expect actual
Switched to a new branch 'foo'
Switched to branch 'main'
Deleted branch foo/bar (was da664a6).
ok 20 - renaming checked out branch works with d/f conflict
expecting success of 3200.21 'git branch -m o/o o should fail when o/p exists':
git branch o/o &&
git branch o/p &&
test_must_fail git branch -m o/o o
error: 'refs/heads/o/p' exists; cannot create 'refs/heads/o'
fatal: Branch rename failed
ok 21 - git branch -m o/o o should fail when o/p exists
expecting success of 3200.22 'git branch -m o/q o/p should fail when o/p exists':
git branch o/q &&
test_must_fail git branch -m o/q o/p
fatal: a branch named 'o/p' already exists
ok 22 - git branch -m o/q o/p should fail when o/p exists
expecting success of 3200.23 'git branch -M o/q o/p should work when o/p exists':
git branch -M o/q o/p
ok 23 - git branch -M o/q o/p should work when o/p exists
expecting success of 3200.24 'git branch -m -f o/q o/p should work when o/p exists':
git branch o/q &&
git branch -m -f o/q o/p
ok 24 - git branch -m -f o/q o/p should work when o/p exists
expecting success of 3200.25 'git branch -m q r/q should fail when r exists':
git branch q &&
git branch r &&
test_must_fail git branch -m q r/q
error: 'refs/heads/r' exists; cannot create 'refs/heads/r/q'
fatal: Branch rename failed
ok 25 - git branch -m q r/q should fail when r exists
expecting success of 3200.26 'git branch -M foo bar should fail when bar is checked out':
git branch bar &&
git checkout -b foo &&
test_must_fail git branch -M bar foo
Switched to a new branch 'foo'
fatal: cannot force update the branch 'foo' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t3200-branch'
ok 26 - git branch -M foo bar should fail when bar is checked out
expecting success of 3200.27 'git branch -M foo bar should fail when bar is checked out in worktree':
git branch -f bar &&
test_when_finished "git worktree remove wt && git branch -D wt" &&
git worktree add wt &&
test_must_fail git branch -M bar wt
Preparing worktree (new branch 'wt')
HEAD is now at da664a6 Second commit.
fatal: cannot force update the branch 'wt' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t3200-branch/wt'
Deleted branch wt (was da664a6).
ok 27 - git branch -M foo bar should fail when bar is checked out in worktree
expecting success of 3200.28 'git branch -M baz bam should succeed when baz is checked out':
git checkout -b baz &&
git branch bam &&
git branch -M baz bam &&
test $(git rev-parse --abbrev-ref HEAD) = bam
Switched to a new branch 'baz'
ok 28 - git branch -M baz bam should succeed when baz is checked out
expecting success of 3200.29 'git branch -M baz bam should add entries to .git/logs/HEAD':
msg="Branch: renamed refs/heads/baz to refs/heads/bam" &&
grep " $ZERO_OID.*$msg$" .git/logs/HEAD &&
grep "^$ZERO_OID.*$msg$" .git/logs/HEAD
da664a6b0bffeb0904609e9e14e1beeecfe55c4a 0000000000000000000000000000000000000000 C O Mitter <committer@example.com> 1112354055 +0200 Branch: renamed refs/heads/baz to refs/heads/bam
0000000000000000000000000000000000000000 da664a6b0bffeb0904609e9e14e1beeecfe55c4a C O Mitter <committer@example.com> 1112354055 +0200 Branch: renamed refs/heads/baz to refs/heads/bam
ok 29 - git branch -M baz bam should add entries to .git/logs/HEAD
expecting success of 3200.30 'git branch -M should leave orphaned HEAD alone':
git init -b main orphan &&
(
cd orphan &&
test_commit initial &&
git checkout --orphan lonely &&
grep lonely .git/HEAD &&
test_path_is_missing .git/refs/head/lonely &&
git branch -M main mistress &&
grep lonely .git/HEAD
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/orphan/.git/
[main (root-commit) 24b24cf] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 initial.t
Switched to a new branch 'lonely'
ref: refs/heads/lonely
ref: refs/heads/lonely
ok 30 - git branch -M should leave orphaned HEAD alone
expecting success of 3200.31 'resulting reflog can be shown by log -g':
oid=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
HEAD@{0} $oid $msg
HEAD@{2} $oid checkout: moving from foo to baz
EOF
git log -g --format="%gd %H %gs" -2 HEAD >actual &&
test_cmp expect actual
ok 31 - resulting reflog can be shown by log -g
expecting success of 3200.32 'git branch -M baz bam should succeed when baz is checked out as linked working tree':
git checkout main &&
git worktree add -b baz bazdir &&
git worktree add -f bazdir2 baz &&
git branch -M baz bam &&
test $(git -C bazdir rev-parse --abbrev-ref HEAD) = bam &&
test $(git -C bazdir2 rev-parse --abbrev-ref HEAD) = bam &&
rm -r bazdir bazdir2 &&
git worktree prune
Switched to branch 'main'
Preparing worktree (new branch 'baz')
HEAD is now at da664a6 Second commit.
Preparing worktree (checking out 'baz')
HEAD is now at da664a6 Second commit.
ok 32 - git branch -M baz bam should succeed when baz is checked out as linked working tree
expecting success of 3200.33 'git branch -M baz bam should succeed within a worktree in which baz is checked out':
git checkout -b baz &&
git worktree add -f bazdir baz &&
(
cd bazdir &&
git branch -M baz bam &&
test $(git rev-parse --abbrev-ref HEAD) = bam
) &&
test $(git rev-parse --abbrev-ref HEAD) = bam &&
rm -r bazdir &&
git worktree prune
Switched to a new branch 'baz'
Preparing worktree (checking out 'baz')
HEAD is now at da664a6 Second commit.
ok 33 - git branch -M baz bam should succeed within a worktree in which baz is checked out
expecting success of 3200.34 'git branch -M main should work when main is checked out':
git checkout main &&
git branch -M main
Switched to branch 'main'
ok 34 - git branch -M main should work when main is checked out
expecting success of 3200.35 'git branch -M main main should work when main is checked out':
git checkout main &&
git branch -M main main
Already on 'main'
ok 35 - git branch -M main main should work when main is checked out
expecting success of 3200.36 'git branch -M topic topic should work when main is checked out':
git checkout main &&
git branch topic &&
git branch -M topic topic
Already on 'main'
ok 36 - git branch -M topic topic should work when main is checked out
expecting success of 3200.37 'git branch -M and -C fail on detached HEAD':
git checkout HEAD^{} &&
test_when_finished git checkout - &&
echo "fatal: cannot rename the current branch while not on any." >expect &&
test_must_fail git branch -M must-fail 2>err &&
test_cmp expect err &&
echo "fatal: cannot copy the current branch while not on any." >expect &&
test_must_fail git branch -C must-fail 2>err &&
test_cmp expect err
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at da664a6 Second commit.
Switched to branch 'main'
ok 37 - git branch -M and -C fail on detached HEAD
expecting success of 3200.38 'git branch -d on orphan HEAD (merged)':
test_when_finished git checkout main &&
git checkout --orphan orphan &&
test_when_finished "rm -rf .git/objects/commit-graph*" &&
git commit-graph write --reachable &&
git branch --track to-delete main &&
git branch -d to-delete
Switched to a new branch 'orphan'
branch 'to-delete' set up to track 'main'.
warning: deleting branch 'to-delete' that has been merged to
'refs/heads/main', but not yet merged to HEAD.
Deleted branch to-delete (was da664a6).
Switched to branch 'main'
ok 38 - git branch -d on orphan HEAD (merged)
expecting success of 3200.39 'git branch -d on orphan HEAD (merged, graph)':
test_when_finished git checkout main &&
git checkout --orphan orphan &&
git branch --track to-delete main &&
git branch -d to-delete
Switched to a new branch 'orphan'
branch 'to-delete' set up to track 'main'.
warning: deleting branch 'to-delete' that has been merged to
'refs/heads/main', but not yet merged to HEAD.
Deleted branch to-delete (was da664a6).
Switched to branch 'main'
ok 39 - git branch -d on orphan HEAD (merged, graph)
expecting success of 3200.40 'git branch -d on orphan HEAD (unmerged)':
test_when_finished git checkout main &&
git checkout --orphan orphan &&
test_when_finished "git branch -D to-delete" &&
git branch to-delete main &&
test_must_fail git branch -d to-delete 2>err &&
grep "not fully merged" err
Switched to a new branch 'orphan'
error: The branch 'to-delete' is not fully merged.
Deleted branch to-delete (was da664a6).
Switched to branch 'main'
ok 40 - git branch -d on orphan HEAD (unmerged)
expecting success of 3200.41 'git branch -d on orphan HEAD (unmerged, graph)':
test_when_finished git checkout main &&
git checkout --orphan orphan &&
test_when_finished "git branch -D to-delete" &&
git branch to-delete main &&
test_when_finished "rm -rf .git/objects/commit-graph*" &&
git commit-graph write --reachable &&
test_must_fail git branch -d to-delete 2>err &&
grep "not fully merged" err
Switched to a new branch 'orphan'
error: The branch 'to-delete' is not fully merged.
Deleted branch to-delete (was da664a6).
Switched to branch 'main'
ok 41 - git branch -d on orphan HEAD (unmerged, graph)
expecting success of 3200.42 'git branch -v -d t should work':
git branch t &&
git rev-parse --verify refs/heads/t &&
git branch -v -d t &&
test_must_fail git rev-parse --verify refs/heads/t
da664a6b0bffeb0904609e9e14e1beeecfe55c4a
Deleted branch t (was da664a6).
fatal: Needed a single revision
ok 42 - git branch -v -d t should work
expecting success of 3200.43 'git branch -v -m t s should work':
git branch t &&
git rev-parse --verify refs/heads/t &&
git branch -v -m t s &&
test_must_fail git rev-parse --verify refs/heads/t &&
git rev-parse --verify refs/heads/s &&
git branch -d s
da664a6b0bffeb0904609e9e14e1beeecfe55c4a
fatal: Needed a single revision
da664a6b0bffeb0904609e9e14e1beeecfe55c4a
Deleted branch s (was da664a6).
ok 43 - git branch -v -m t s should work
expecting success of 3200.44 'git branch -m -d t s should fail':
git branch t &&
git rev-parse refs/heads/t &&
test_must_fail git branch -m -d t s &&
git branch -d t &&
test_must_fail git rev-parse refs/heads/t
da664a6b0bffeb0904609e9e14e1beeecfe55c4a
usage: git branch [<options>] [-r | -a] [--merged] [--no-merged]
or: git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-point>]
or: git branch [<options>] [-l] [<pattern>...]
or: git branch [<options>] [-r] (-d | -D) <branch-name>...
or: git branch [<options>] (-m | -M) [<old-branch>] <new-branch>
or: git branch [<options>] (-c | -C) [<old-branch>] <new-branch>
or: git branch [<options>] [-r | -a] [--points-at]
or: git branch [<options>] [-r | -a] [--format]
Generic options
-v, --verbose show hash and subject, give twice for upstream branch
-q, --quiet suppress informational messages
-t, --track[=(direct|inherit)]
set branch tracking configuration
-u, --set-upstream-to <upstream>
change the upstream info
--unset-upstream unset the upstream info
--color[=<when>] use colored output
-r, --remotes act on remote-tracking branches
--contains <commit> print only branches that contain the commit
--no-contains <commit>
print only branches that don't contain the commit
--abbrev[=<n>] use <n> digits to display object names
Specific git-branch actions:
-a, --all list both remote-tracking and local branches
-d, --delete delete fully merged branch
-D delete branch (even if not merged)
-m, --move move/rename a branch and its reflog
-M move/rename a branch, even if target exists
-c, --copy copy a branch and its reflog
-C copy a branch, even if target exists
-l, --list list branch names
--show-current show current branch name
--create-reflog create the branch's reflog
--edit-description edit the description for the branch
-f, --force force creation, move/rename, deletion
--merged <commit> print only branches that are merged
--no-merged <commit> print only branches that are not merged
--column[=<style>] list branches in columns
--sort <key> field name to sort on
--points-at <object> print only branches of the object
-i, --ignore-case sorting and filtering are case insensitive
--recurse-submodules recurse through submodules
--format <format> format to use for the output
Deleted branch t (was da664a6).
fatal: ambiguous argument 'refs/heads/t': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
refs/heads/t
ok 44 - git branch -m -d t s should fail
expecting success of 3200.45 'git branch --list -d t should fail':
git branch t &&
git rev-parse refs/heads/t &&
test_must_fail git branch --list -d t &&
git branch -d t &&
test_must_fail git rev-parse refs/heads/t
da664a6b0bffeb0904609e9e14e1beeecfe55c4a
usage: git branch [<options>] [-r | -a] [--merged] [--no-merged]
or: git branch [<options>] [-f] [--recurse-submodules] <branch-name> [<start-point>]
or: git branch [<options>] [-l] [<pattern>...]
or: git branch [<options>] [-r] (-d | -D) <branch-name>...
or: git branch [<options>] (-m | -M) [<old-branch>] <new-branch>
or: git branch [<options>] (-c | -C) [<old-branch>] <new-branch>
or: git branch [<options>] [-r | -a] [--points-at]
or: git branch [<options>] [-r | -a] [--format]
Generic options
-v, --verbose show hash and subject, give twice for upstream branch
-q, --quiet suppress informational messages
-t, --track[=(direct|inherit)]
set branch tracking configuration
-u, --set-upstream-to <upstream>
change the upstream info
--unset-upstream unset the upstream info
--color[=<when>] use colored output
-r, --remotes act on remote-tracking branches
--contains <commit> print only branches that contain the commit
--no-contains <commit>
print only branches that don't contain the commit
--abbrev[=<n>] use <n> digits to display object names
Specific git-branch actions:
-a, --all list both remote-tracking and local branches
-d, --delete delete fully merged branch
-D delete branch (even if not merged)
-m, --move move/rename a branch and its reflog
-M move/rename a branch, even if target exists
-c, --copy copy a branch and its reflog
-C copy a branch, even if target exists
-l, --list list branch names
--show-current show current branch name
--create-reflog create the branch's reflog
--edit-description edit the description for the branch
-f, --force force creation, move/rename, deletion
--merged <commit> print only branches that are merged
--no-merged <commit> print only branches that are not merged
--column[=<style>] list branches in columns
--sort <key> field name to sort on
--points-at <object> print only branches of the object
-i, --ignore-case sorting and filtering are case insensitive
--recurse-submodules recurse through submodules
--format <format> format to use for the output
Deleted branch t (was da664a6).
fatal: ambiguous argument 'refs/heads/t': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
refs/heads/t
ok 45 - git branch --list -d t should fail
expecting success of 3200.46 'deleting checked-out branch from repo that is a submodule':
test_when_finished "rm -rf repo1 repo2" &&
git init repo1 &&
git init repo1/sub &&
test_commit -C repo1/sub x &&
test_config_global protocol.file.allow always &&
git -C repo1 submodule add ./sub &&
git -C repo1 commit -m "adding sub" &&
git clone --recurse-submodules repo1 repo2 &&
git -C repo2/sub checkout -b work &&
test_must_fail git -C repo2/sub branch -D work
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/repo1/.git/
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/repo1/sub/.git/
[main (root-commit) cb85766] x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 x.t
Adding existing repo at 'sub' to the index
[main (root-commit) 0e407d8] adding sub
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 sub
Cloning into 'repo2'...
done.
Submodule 'sub' (/<<PKGBUILDDIR>>/t/trash directory.t3200-branch/repo1/sub) registered for path 'sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3200-branch/repo2/sub'...
done.
Submodule path 'sub': checked out 'cb85766717df318a47d35b1ec7b43b1040fdc133'
Switched to a new branch 'work'
error: Cannot delete branch 'work' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t3200-branch/repo2/.git/modules/sub'
ok 46 - deleting checked-out branch from repo that is a submodule
expecting success of 3200.47 'bare main worktree has HEAD at branch deleted by secondary worktree':
test_when_finished "rm -rf nonbare base secondary" &&
git init -b main nonbare &&
test_commit -C nonbare x &&
git clone --bare nonbare bare &&
git -C bare worktree add --detach ../secondary main &&
git -C secondary branch -D main
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/nonbare/.git/
[main (root-commit) 6f481db] x
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 x.t
Cloning into bare repository 'bare'...
done.
Preparing worktree (detached HEAD 6f481db)
HEAD is now at 6f481db x
Deleted branch main (was 6f481db).
ok 47 - bare main worktree has HEAD at branch deleted by secondary worktree
expecting success of 3200.48 'git branch --list -v with --abbrev':
test_when_finished "git branch -D t" &&
git branch t &&
git branch -v --list t >actual.default &&
git branch -v --list --abbrev t >actual.abbrev &&
test_cmp actual.default actual.abbrev &&
git branch -v --list --no-abbrev t >actual.noabbrev &&
git branch -v --list --abbrev=0 t >actual.0abbrev &&
git -c core.abbrev=no branch -v --list t >actual.noabbrev-conf &&
test_cmp actual.noabbrev actual.0abbrev &&
test_cmp actual.noabbrev actual.noabbrev-conf &&
git branch -v --list --abbrev=36 t >actual.36abbrev &&
# how many hexdigits are used?
read name objdefault rest <actual.abbrev &&
read name obj36 rest <actual.36abbrev &&
objfull=$(git rev-parse --verify t) &&
# are we really getting abbreviations?
test "$obj36" != "$objdefault" &&
expr "$obj36" : "$objdefault" >/dev/null &&
test "$objfull" != "$obj36" &&
expr "$objfull" : "$obj36" >/dev/null
Deleted branch t (was da664a6).
ok 48 - git branch --list -v with --abbrev
expecting success of 3200.49 'git branch --column':
COLUMNS=81 git branch --column=column >actual &&
cat >expect <<\EOF &&
a/b/c bam foo l * main n o/p r
abc bar j/k m/m mb o/o q topic
EOF
test_cmp expect actual
ok 49 - git branch --column
expecting success of 3200.50 'git branch --column with an extremely long branch name':
long=this/is/a/part/of/long/branch/name &&
long=z$long/$long/$long/$long &&
test_when_finished "git branch -d $long" &&
git branch $long &&
COLUMNS=80 git branch --column=column >actual &&
cat >expect <<EOF &&
a/b/c
abc
bam
bar
foo
j/k
l
m/m
* main
mb
n
o/o
o/p
q
r
topic
$long
EOF
test_cmp expect actual
Deleted branch zthis/is/a/part/of/long/branch/name/this/is/a/part/of/long/branch/name/this/is/a/part/of/long/branch/name/this/is/a/part/of/long/branch/name (was da664a6).
ok 50 - git branch --column with an extremely long branch name
expecting success of 3200.51 'git branch with column.*':
git config column.ui column &&
git config column.branch "dense" &&
COLUMNS=80 git branch >actual &&
git config --unset column.branch &&
git config --unset column.ui &&
cat >expect <<\EOF &&
a/b/c bam foo l * main n o/p r
abc bar j/k m/m mb o/o q topic
EOF
test_cmp expect actual
ok 51 - git branch with column.*
expecting success of 3200.52 'git branch --column -v should fail':
test_must_fail git branch --column -v
fatal: options '--column' and '--verbose' cannot be used together
ok 52 - git branch --column -v should fail
expecting success of 3200.53 'git branch -v with column.ui ignored':
git config column.ui column &&
COLUMNS=80 git branch -v | cut -c -8 | sed "s/ *$//" >actual &&
git config --unset column.ui &&
cat >expect <<\EOF &&
a/b/c
abc
bam
bar
foo
j/k
l
m/m
* main
mb
n
o/o
o/p
q
r
topic
EOF
test_cmp expect actual
ok 53 - git branch -v with column.ui ignored
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 3200.54 'git branch -m q q2 without config should succeed':
git branch -m q q2 &&
git branch -m q2 q
ok 54 - git branch -m q q2 without config should succeed
expecting success of 3200.55 'git branch -m s/s s should work when s/t is deleted':
git branch --create-reflog s/s &&
git reflog exists refs/heads/s/s &&
git branch --create-reflog s/t &&
git reflog exists refs/heads/s/t &&
git branch -d s/t &&
git branch -m s/s s &&
git reflog exists refs/heads/s
Deleted branch s/t (was da664a6).
ok 55 - git branch -m s/s s should work when s/t is deleted
expecting success of 3200.56 'config information was renamed, too':
test $(git config branch.s.dummy) = Hello &&
test_must_fail git config branch.s/s.dummy
ok 56 - config information was renamed, too
expecting success of 3200.57 'git branch -m correctly renames multiple config sections':
test_when_finished "git checkout main" &&
git checkout -b source main &&
# Assert that a config file with multiple config sections has
# those sections preserved...
cat >expect <<-\EOF &&
branch.dest.key1=value1
some.gar.b=age
branch.dest.key2=value2
EOF
cat >config.branch <<\EOF &&
;; Note the lack of -\EOF above & mixed indenting here. This is
;; intentional, we are also testing that the formatting of copied
;; sections is preserved.
;; Comment for source. Tabs
[branch "source"]
;; Comment for the source value
key1 = value1
;; Comment for some.gar. Spaces
[some "gar"]
;; Comment for the some.gar value
b = age
;; Comment for source, again. Mixed tabs/spaces.
[branch "source"]
;; Comment for the source value, again
key2 = value2
EOF
cat config.branch >>.git/config &&
git branch -m source dest &&
git config -f .git/config -l | grep -F -e source -e dest -e some.gar >actual &&
test_cmp expect actual &&
# ...and that the comments for those sections are also
# preserved.
cat config.branch | sed "s/\"source\"/\"dest\"/" >expect &&
sed -n -e "/Note the lack/,\$p" .git/config >actual &&
test_cmp expect actual
Switched to a new branch 'source'
Switched to branch 'main'
ok 57 - git branch -m correctly renames multiple config sections
expecting success of 3200.58 'git branch -c dumps usage':
test_expect_code 128 git branch -c 2>err &&
test_i18ngrep "branch name required" err
fatal: branch name required
ok 58 - git branch -c dumps usage
expecting success of 3200.59 'git branch --copy dumps usage':
test_expect_code 128 git branch --copy 2>err &&
test_i18ngrep "branch name required" err
fatal: branch name required
ok 59 - git branch --copy dumps usage
expecting success of 3200.60 'git branch -c d e should work':
git branch --create-reflog d &&
git reflog exists refs/heads/d &&
git config branch.d.dummy Hello &&
git branch -c d e &&
git reflog exists refs/heads/d &&
git reflog exists refs/heads/e &&
echo Hello >expect &&
git config branch.e.dummy >actual &&
test_cmp expect actual &&
echo Hello >expect &&
git config branch.d.dummy >actual &&
test_cmp expect actual
ok 60 - git branch -c d e should work
expecting success of 3200.61 'git branch --copy is a synonym for -c':
git branch --create-reflog copy &&
git reflog exists refs/heads/copy &&
git config branch.copy.dummy Hello &&
git branch --copy copy copy-to &&
git reflog exists refs/heads/copy &&
git reflog exists refs/heads/copy-to &&
echo Hello >expect &&
git config branch.copy.dummy >actual &&
test_cmp expect actual &&
echo Hello >expect &&
git config branch.copy-to.dummy >actual &&
test_cmp expect actual
ok 61 - git branch --copy is a synonym for -c
expecting success of 3200.62 'git branch -c ee ef should copy ee to create branch ef':
git checkout -b ee &&
git reflog exists refs/heads/ee &&
git config branch.ee.dummy Hello &&
git branch -c ee ef &&
git reflog exists refs/heads/ee &&
git reflog exists refs/heads/ef &&
test $(git config branch.ee.dummy) = Hello &&
test $(git config branch.ef.dummy) = Hello &&
test $(git rev-parse --abbrev-ref HEAD) = ee
Switched to a new branch 'ee'
ok 62 - git branch -c ee ef should copy ee to create branch ef
expecting success of 3200.63 'git branch -c f/f g/g should work':
git branch --create-reflog f/f &&
git reflog exists refs/heads/f/f &&
git config branch.f/f.dummy Hello &&
git branch -c f/f g/g &&
git reflog exists refs/heads/f/f &&
git reflog exists refs/heads/g/g &&
test $(git config branch.f/f.dummy) = Hello &&
test $(git config branch.g/g.dummy) = Hello
ok 63 - git branch -c f/f g/g should work
expecting success of 3200.64 'git branch -c m2 m2 should work':
git branch --create-reflog m2 &&
git reflog exists refs/heads/m2 &&
git config branch.m2.dummy Hello &&
git branch -c m2 m2 &&
git reflog exists refs/heads/m2 &&
test $(git config branch.m2.dummy) = Hello
ok 64 - git branch -c m2 m2 should work
expecting success of 3200.65 'git branch -c zz zz/zz should fail':
git branch --create-reflog zz &&
git reflog exists refs/heads/zz &&
test_must_fail git branch -c zz zz/zz
error: directory not empty: .git/logs/refs/heads/zz/zz
fatal: Branch copy failed
ok 65 - git branch -c zz zz/zz should fail
expecting success of 3200.66 'git branch -c b/b b should fail':
git branch --create-reflog b/b &&
test_must_fail git branch -c b/b b
error: directory not empty: .git/logs/refs/heads/b
fatal: Branch copy failed
ok 66 - git branch -c b/b b should fail
expecting success of 3200.67 'git branch -C o/q o/p should work when o/p exists':
git branch --create-reflog o/q &&
git reflog exists refs/heads/o/q &&
git reflog exists refs/heads/o/p &&
git branch -C o/q o/p
ok 67 - git branch -C o/q o/p should work when o/p exists
expecting success of 3200.68 'git branch -c -f o/q o/p should work when o/p exists':
git reflog exists refs/heads/o/q &&
git reflog exists refs/heads/o/p &&
git branch -c -f o/q o/p
ok 68 - git branch -c -f o/q o/p should work when o/p exists
expecting success of 3200.69 'git branch -c qq rr/qq should fail when rr exists':
git branch qq &&
git branch rr &&
test_must_fail git branch -c qq rr/qq
error: 'refs/heads/rr' exists; cannot create 'refs/heads/rr/qq'
fatal: Branch copy failed
ok 69 - git branch -c qq rr/qq should fail when rr exists
expecting success of 3200.70 'git branch -C b1 b2 should fail when b2 is checked out':
git branch b1 &&
git checkout -b b2 &&
test_must_fail git branch -C b1 b2
Switched to a new branch 'b2'
fatal: cannot force update the branch 'b2' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t3200-branch'
ok 70 - git branch -C b1 b2 should fail when b2 is checked out
expecting success of 3200.71 'git branch -C c1 c2 should succeed when c1 is checked out':
git checkout -b c1 &&
git branch c2 &&
git branch -C c1 c2 &&
test $(git rev-parse --abbrev-ref HEAD) = c1
Switched to a new branch 'c1'
ok 71 - git branch -C c1 c2 should succeed when c1 is checked out
expecting success of 3200.72 'git branch -C c1 c2 should never touch HEAD':
msg="Branch: copied refs/heads/c1 to refs/heads/c2" &&
! grep "$msg$" .git/logs/HEAD
ok 72 - git branch -C c1 c2 should never touch HEAD
expecting success of 3200.73 'git branch -C main should work when main is checked out':
git checkout main &&
git branch -C main
Switched to branch 'main'
ok 73 - git branch -C main should work when main is checked out
expecting success of 3200.74 'git branch -C main main should work when main is checked out':
git checkout main &&
git branch -C main main
Already on 'main'
ok 74 - git branch -C main main should work when main is checked out
expecting success of 3200.75 'git branch -C main5 main5 should work when main is checked out':
git checkout main &&
git branch main5 &&
git branch -C main5 main5
Already on 'main'
ok 75 - git branch -C main5 main5 should work when main is checked out
expecting success of 3200.76 'git branch -C ab cd should overwrite existing config for cd':
git branch --create-reflog cd &&
git reflog exists refs/heads/cd &&
git config branch.cd.dummy CD &&
git branch --create-reflog ab &&
git reflog exists refs/heads/ab &&
git config branch.ab.dummy AB &&
git branch -C ab cd &&
git reflog exists refs/heads/ab &&
git reflog exists refs/heads/cd &&
test $(git config branch.ab.dummy) = AB &&
test $(git config branch.cd.dummy) = AB
ok 76 - git branch -C ab cd should overwrite existing config for cd
expecting success of 3200.77 'git branch -c correctly copies multiple config sections':
FOO=1 &&
export FOO &&
test_when_finished "git checkout main" &&
git checkout -b source2 main &&
# Assert that a config file with multiple config sections has
# those sections preserved...
cat >expect <<-\EOF &&
branch.source2.key1=value1
branch.dest2.key1=value1
more.gar.b=age
branch.source2.key2=value2
branch.dest2.key2=value2
EOF
cat >config.branch <<\EOF &&
;; Note the lack of -\EOF above & mixed indenting here. This is
;; intentional, we are also testing that the formatting of copied
;; sections is preserved.
;; Comment for source2. Tabs
[branch "source2"]
;; Comment for the source2 value
key1 = value1
;; Comment for more.gar. Spaces
[more "gar"]
;; Comment for the more.gar value
b = age
;; Comment for source2, again. Mixed tabs/spaces.
[branch "source2"]
;; Comment for the source2 value, again
key2 = value2
EOF
cat config.branch >>.git/config &&
git branch -c source2 dest2 &&
git config -f .git/config -l | grep -F -e source2 -e dest2 -e more.gar >actual &&
test_cmp expect actual &&
# ...and that the comments and formatting for those sections
# is also preserved.
cat >expect <<\EOF &&
;; Comment for source2. Tabs
[branch "source2"]
;; Comment for the source2 value
key1 = value1
;; Comment for more.gar. Spaces
[branch "dest2"]
;; Comment for the source2 value
key1 = value1
;; Comment for more.gar. Spaces
[more "gar"]
;; Comment for the more.gar value
b = age
;; Comment for source2, again. Mixed tabs/spaces.
[branch "source2"]
;; Comment for the source2 value, again
key2 = value2
[branch "dest2"]
;; Comment for the source2 value, again
key2 = value2
EOF
sed -n -e "/Comment for source2/,\$p" .git/config >actual &&
test_cmp expect actual
Switched to a new branch 'source2'
Switched to branch 'main'
ok 77 - git branch -c correctly copies multiple config sections
expecting success of 3200.78 'deleting a symref':
git branch target &&
git symbolic-ref refs/heads/symref refs/heads/target &&
echo "Deleted branch symref (was refs/heads/target)." >expect &&
git branch -d symref >actual &&
test_path_is_file .git/refs/heads/target &&
test_path_is_missing .git/refs/heads/symref &&
test_cmp expect actual
ok 78 - deleting a symref
expecting success of 3200.79 'deleting a dangling symref':
git symbolic-ref refs/heads/dangling-symref nowhere &&
test_path_is_file .git/refs/heads/dangling-symref &&
echo "Deleted branch dangling-symref (was nowhere)." >expect &&
git branch -d dangling-symref >actual &&
test_path_is_missing .git/refs/heads/dangling-symref &&
test_cmp expect actual
ok 79 - deleting a dangling symref
expecting success of 3200.80 'deleting a self-referential symref':
git symbolic-ref refs/heads/self-reference refs/heads/self-reference &&
test_path_is_file .git/refs/heads/self-reference &&
echo "Deleted branch self-reference (was refs/heads/self-reference)." >expect &&
git branch -d self-reference >actual &&
test_path_is_missing .git/refs/heads/self-reference &&
test_cmp expect actual
ok 80 - deleting a self-referential symref
expecting success of 3200.81 'renaming a symref is not allowed':
git symbolic-ref refs/heads/topic refs/heads/main &&
test_must_fail git branch -m topic new-topic &&
git symbolic-ref refs/heads/topic &&
test_path_is_file .git/refs/heads/main &&
test_path_is_missing .git/refs/heads/new-topic
error: refname refs/heads/topic is a symbolic ref, renaming it is not supported
fatal: Branch rename failed
refs/heads/main
ok 81 - renaming a symref is not allowed
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 3200.82 'git branch -m u v should fail when the reflog for u is a symlink':
git branch --create-reflog u &&
mv .git/logs/refs/heads/u real-u &&
ln -s real-u .git/logs/refs/heads/u &&
test_must_fail git branch -m u v
error: reflog for refs/heads/u is a symlink
fatal: Branch rename failed
ok 82 - git branch -m u v should fail when the reflog for u is a symlink
expecting success of 3200.83 'git branch -m with symlinked .git/refs':
test_when_finished "rm -rf subdir" &&
git init --bare subdir &&
rm -rfv subdir/refs subdir/objects subdir/packed-refs &&
ln -s ../.git/refs subdir/refs &&
ln -s ../.git/objects subdir/objects &&
ln -s ../.git/packed-refs subdir/packed-refs &&
git -C subdir rev-parse --absolute-git-dir >subdir.dir &&
git rev-parse --absolute-git-dir >our.dir &&
! test_cmp subdir.dir our.dir &&
git -C subdir log &&
git -C subdir branch rename-src &&
git rev-parse rename-src >expect &&
git -C subdir branch -m rename-src rename-dest &&
git rev-parse rename-dest >actual &&
test_cmp expect actual &&
git branch -D rename-dest
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/subdir/
removed directory 'subdir/refs/heads'
removed directory 'subdir/refs/tags'
removed directory 'subdir/refs'
removed directory 'subdir/objects/pack'
removed directory 'subdir/objects/info'
removed directory 'subdir/objects'
--- subdir.dir 2023-09-16 19:12:40.848765936 +0000
+++ our.dir 2023-09-16 19:12:40.856766033 +0000
@@ -1 +1 @@
-/<<PKGBUILDDIR>>/t/trash directory.t3200-branch/subdir
+/<<PKGBUILDDIR>>/t/trash directory.t3200-branch/.git
commit da664a6b0bffeb0904609e9e14e1beeecfe55c4a
Author: A U Thor <author@example.com>
Date: Fri Apr 1 13:14:15 2005 +0200
Second commit.
commit 2daebe96d7fd03d28875d852f87c06a18f4a6639
Author: A U Thor <author@example.com>
Date: Fri Apr 1 13:14:15 2005 +0200
Initial commit.
Deleted branch rename-dest (was da664a6).
ok 83 - git branch -m with symlinked .git/refs
expecting success of 3200.84 'test tracking setup via --track':
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --track my1 local/main &&
test $(git config branch.my1.remote) = local &&
test $(git config branch.my1.merge) = refs/heads/main
From .
* [new branch] a/b/c -> local/a/b/c
* [new branch] ab -> local/ab
* [new branch] abc -> local/abc
* [new branch] b/b -> local/b/b
* [new branch] b1 -> local/b1
* [new branch] b2 -> local/b2
* [new branch] bam -> local/bam
* [new branch] bar -> local/bar
* [new branch] c1 -> local/c1
* [new branch] c2 -> local/c2
* [new branch] cd -> local/cd
* [new branch] copy -> local/copy
* [new branch] copy-to -> local/copy-to
* [new branch] d -> local/d
* [new branch] dest -> local/dest
* [new branch] dest2 -> local/dest2
* [new branch] e -> local/e
* [new branch] ee -> local/ee
* [new branch] ef -> local/ef
* [new branch] f/f -> local/f/f
* [new branch] foo -> local/foo
* [new branch] g/g -> local/g/g
* [new branch] j/k -> local/j/k
* [new branch] l -> local/l
* [new branch] m/m -> local/m/m
* [new branch] m2 -> local/m2
* [new branch] main -> local/main
* [new branch] main5 -> local/main5
* [new branch] mb -> local/mb
* [new branch] n -> local/n
* [new branch] o/o -> local/o/o
* [new branch] o/p -> local/o/p
* [new branch] o/q -> local/o/q
* [new branch] q -> local/q
* [new branch] qq -> local/qq
* [new branch] r -> local/r
* [new branch] rr -> local/rr
* [new branch] s -> local/s
* [new branch] source2 -> local/source2
* [new branch] target -> local/target
* [new branch] topic -> local/topic
* [new branch] u -> local/u
* [new branch] zz -> local/zz
branch 'my1' set up to track 'local/main'.
ok 84 - test tracking setup via --track
expecting success of 3200.85 'test tracking setup (non-wildcard, matching)':
git config remote.local.url . &&
git config remote.local.fetch refs/heads/main:refs/remotes/local/main &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --track my4 local/main &&
test $(git config branch.my4.remote) = local &&
test $(git config branch.my4.merge) = refs/heads/main
branch 'my4' set up to track 'local/main'.
ok 85 - test tracking setup (non-wildcard, matching)
expecting success of 3200.86 'tracking setup fails on non-matching refspec':
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git config remote.local.fetch refs/heads/s:refs/remotes/local/s &&
test_must_fail git branch --track my5 local/main &&
test_must_fail git config branch.my5.remote &&
test_must_fail git config branch.my5.merge
fatal: cannot set up tracking information; starting point 'local/main' is not a branch
ok 86 - tracking setup fails on non-matching refspec
expecting success of 3200.87 'test tracking setup via config':
git config branch.autosetupmerge true &&
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch my3 local/main &&
test $(git config branch.my3.remote) = local &&
test $(git config branch.my3.merge) = refs/heads/main
branch 'my3' set up to track 'local/main'.
ok 87 - test tracking setup via config
expecting success of 3200.88 'test overriding tracking setup via --no-track':
git config branch.autosetupmerge true &&
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --no-track my2 local/main &&
git config branch.autosetupmerge false &&
! test "$(git config branch.my2.remote)" = local &&
! test "$(git config branch.my2.merge)" = refs/heads/main
ok 88 - test overriding tracking setup via --no-track
expecting success of 3200.89 'no tracking without .fetch entries':
git config branch.autosetupmerge true &&
git branch my6 s &&
git config branch.autosetupmerge false &&
test -z "$(git config branch.my6.remote)" &&
test -z "$(git config branch.my6.merge)"
ok 89 - no tracking without .fetch entries
expecting success of 3200.90 'test tracking setup via --track but deeper':
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/o/o || git fetch local) &&
git branch --track my7 local/o/o &&
test "$(git config branch.my7.remote)" = local &&
test "$(git config branch.my7.merge)" = refs/heads/o/o
branch 'my7' set up to track 'local/o/o'.
ok 90 - test tracking setup via --track but deeper
expecting success of 3200.91 'test deleting branch deletes branch config':
git branch -d my7 &&
test -z "$(git config branch.my7.remote)" &&
test -z "$(git config branch.my7.merge)"
Deleted branch my7 (was da664a6).
ok 91 - test deleting branch deletes branch config
expecting success of 3200.92 'test deleting branch without config':
git branch my7 s &&
sha1=$(git rev-parse my7 | cut -c 1-7) &&
echo "Deleted branch my7 (was $sha1)." >expect &&
git branch -d my7 >actual 2>&1 &&
test_cmp expect actual
ok 92 - test deleting branch without config
expecting success of 3200.93 'deleting currently checked out branch fails':
git worktree add -b my7 my7 &&
test_must_fail git -C my7 branch -d my7 &&
test_must_fail git branch -d my7 &&
rm -r my7 &&
git worktree prune
Preparing worktree (new branch 'my7')
HEAD is now at da664a6 Second commit.
error: Cannot delete branch 'my7' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t3200-branch/my7'
error: Cannot delete branch 'my7' checked out at '/<<PKGBUILDDIR>>/t/trash directory.t3200-branch/my7'
ok 93 - deleting currently checked out branch fails
expecting success of 3200.94 'test --track without .fetch entries':
git branch --track my8 &&
test "$(git config branch.my8.remote)" &&
test "$(git config branch.my8.merge)"
branch 'my8' set up to track 'main'.
ok 94 - test --track without .fetch entries
expecting success of 3200.95 'branch from non-branch HEAD w/autosetupmerge=always':
git config branch.autosetupmerge always &&
git branch my9 HEAD^ &&
git config branch.autosetupmerge false
ok 95 - branch from non-branch HEAD w/autosetupmerge=always
expecting success of 3200.96 'branch from non-branch HEAD w/--track causes failure':
test_must_fail git branch --track my10 HEAD^
fatal: cannot set up tracking information; starting point 'HEAD^' is not a branch
ok 96 - branch from non-branch HEAD w/--track causes failure
expecting success of 3200.97 'branch from tag w/--track causes failure':
git tag foobar &&
test_must_fail git branch --track my11 foobar
fatal: cannot set up tracking information; starting point 'foobar' is not a branch
ok 97 - branch from tag w/--track causes failure
expecting success of 3200.98 'simple tracking works when remote branch name matches':
test_when_finished "rm -rf otherserver" &&
git init otherserver &&
test_commit -C otherserver my_commit 1 &&
git -C otherserver branch feature &&
test_config branch.autosetupmerge simple &&
test_config remote.otherserver.url otherserver &&
test_config remote.otherserver.fetch refs/heads/*:refs/remotes/otherserver/* &&
git fetch otherserver &&
git branch feature otherserver/feature &&
test_cmp_config otherserver branch.feature.remote &&
test_cmp_config refs/heads/feature branch.feature.merge
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/otherserver/.git/
[main (root-commit) 593c6ee] my_commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 1
From otherserver
* [new branch] feature -> otherserver/feature
* [new branch] main -> otherserver/main
* [new tag] my_commit -> my_commit
branch 'feature' set up to track 'otherserver/feature'.
ok 98 - simple tracking works when remote branch name matches
expecting success of 3200.99 'simple tracking skips when remote branch name does not match':
test_config branch.autosetupmerge simple &&
test_config remote.local.url . &&
test_config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
git fetch local &&
git branch my-other local/main &&
test_cmp_config "" --default "" branch.my-other.remote &&
test_cmp_config "" --default "" branch.my-other.merge
From .
* [new branch] feature -> local/feature
* [new branch] my1 -> local/my1
* [new branch] my2 -> local/my2
* [new branch] my3 -> local/my3
* [new branch] my4 -> local/my4
* [new branch] my6 -> local/my6
* [new branch] my7 -> local/my7
* [new branch] my8 -> local/my8
* [new branch] my9 -> local/my9
ok 99 - simple tracking skips when remote branch name does not match
expecting success of 3200.100 'simple tracking skips when remote ref is not a branch':
test_config branch.autosetupmerge simple &&
test_config remote.localtags.url . &&
test_config remote.localtags.fetch refs/tags/*:refs/remotes/localtags/* &&
git tag mytag12 main &&
git fetch localtags &&
git branch mytag12 localtags/mytag12 &&
test_cmp_config "" --default "" branch.mytag12.remote &&
test_cmp_config "" --default "" branch.mytag12.merge
From .
* [new tag] foobar -> localtags/foobar
* [new tag] my_commit -> localtags/my_commit
* [new tag] mytag12 -> localtags/mytag12
ok 100 - simple tracking skips when remote ref is not a branch
expecting success of 3200.101 '--set-upstream-to fails on multiple branches':
echo "fatal: too many arguments to set new upstream" >expect &&
test_must_fail git branch --set-upstream-to main a b c 2>err &&
test_cmp expect err
ok 101 - --set-upstream-to fails on multiple branches
expecting success of 3200.102 '--set-upstream-to fails on detached HEAD':
git checkout HEAD^{} &&
test_when_finished git checkout - &&
echo "fatal: could not set upstream of HEAD to main when it does not point to any branch." >expect &&
test_must_fail git branch --set-upstream-to main 2>err &&
test_cmp expect err
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at da664a6 Second commit.
Switched to branch 'main'
ok 102 - --set-upstream-to fails on detached HEAD
expecting success of 3200.103 '--set-upstream-to fails on a missing dst branch':
echo "fatal: branch 'does-not-exist' does not exist" >expect &&
test_must_fail git branch --set-upstream-to main does-not-exist 2>err &&
test_cmp expect err
ok 103 - --set-upstream-to fails on a missing dst branch
expecting success of 3200.104 '--set-upstream-to fails on a missing src branch':
test_must_fail git branch --set-upstream-to does-not-exist main 2>err &&
test_i18ngrep "the requested upstream branch 'does-not-exist' does not exist" err
fatal: the requested upstream branch 'does-not-exist' does not exist
ok 104 - --set-upstream-to fails on a missing src branch
expecting success of 3200.105 '--set-upstream-to fails on a non-ref':
echo "fatal: cannot set up tracking information; starting point 'HEAD^{}' is not a branch" >expect &&
test_must_fail git branch --set-upstream-to HEAD^{} 2>err &&
test_cmp expect err
ok 105 - --set-upstream-to fails on a non-ref
expecting success of 3200.106 '--set-upstream-to fails on locked config':
test_when_finished "rm -f .git/config.lock" &&
>.git/config.lock &&
git branch locked &&
test_must_fail git branch --set-upstream-to locked 2>err &&
test_i18ngrep "could not lock config file .git/config" err
error: could not lock config file .git/config: File exists
ok 106 - --set-upstream-to fails on locked config
expecting success of 3200.107 'use --set-upstream-to modify HEAD':
test_config branch.main.remote foo &&
test_config branch.main.merge foo &&
git branch my12 &&
git branch --set-upstream-to my12 &&
test "$(git config branch.main.remote)" = "." &&
test "$(git config branch.main.merge)" = "refs/heads/my12"
branch 'main' set up to track 'my12'.
ok 107 - use --set-upstream-to modify HEAD
expecting success of 3200.108 'use --set-upstream-to modify a particular branch':
git branch my13 &&
git branch --set-upstream-to main my13 &&
test_when_finished "git branch --unset-upstream my13" &&
test "$(git config branch.my13.remote)" = "." &&
test "$(git config branch.my13.merge)" = "refs/heads/main"
branch 'my13' set up to track 'main'.
ok 108 - use --set-upstream-to modify a particular branch
expecting success of 3200.109 '--unset-upstream should fail if given a non-existent branch':
echo "fatal: Branch 'i-dont-exist' has no upstream information" >expect &&
test_must_fail git branch --unset-upstream i-dont-exist 2>err &&
test_cmp expect err
ok 109 - --unset-upstream should fail if given a non-existent branch
expecting success of 3200.110 '--unset-upstream should fail if config is locked':
test_when_finished "rm -f .git/config.lock" &&
git branch --set-upstream-to locked &&
>.git/config.lock &&
test_must_fail git branch --unset-upstream 2>err &&
test_i18ngrep "could not lock config file .git/config" err
branch 'main' set up to track 'locked'.
error: could not lock config file .git/config: File exists
ok 110 - --unset-upstream should fail if config is locked
expecting success of 3200.111 'test --unset-upstream on HEAD':
git branch my14 &&
test_config branch.main.remote foo &&
test_config branch.main.merge foo &&
git branch --set-upstream-to my14 &&
git branch --unset-upstream &&
test_must_fail git config branch.main.remote &&
test_must_fail git config branch.main.merge &&
# fail for a branch without upstream set
echo "fatal: Branch 'main' has no upstream information" >expect &&
test_must_fail git branch --unset-upstream 2>err &&
test_cmp expect err
branch 'main' set up to track 'my14'.
ok 111 - test --unset-upstream on HEAD
expecting success of 3200.112 '--unset-upstream should fail on multiple branches':
echo "fatal: too many arguments to unset upstream" >expect &&
test_must_fail git branch --unset-upstream a b c 2>err &&
test_cmp expect err
ok 112 - --unset-upstream should fail on multiple branches
expecting success of 3200.113 '--unset-upstream should fail on detached HEAD':
git checkout HEAD^{} &&
test_when_finished git checkout - &&
echo "fatal: could not unset upstream of HEAD when it does not point to any branch." >expect &&
test_must_fail git branch --unset-upstream 2>err &&
test_cmp expect err
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at da664a6 Second commit.
Switched to branch 'main'
ok 113 - --unset-upstream should fail on detached HEAD
expecting success of 3200.114 'test --unset-upstream on a particular branch':
git branch my15 &&
git branch --set-upstream-to main my14 &&
git branch --unset-upstream my14 &&
test_must_fail git config branch.my14.remote &&
test_must_fail git config branch.my14.merge
branch 'my14' set up to track 'main'.
ok 114 - test --unset-upstream on a particular branch
expecting success of 3200.115 'disabled option --set-upstream fails':
test_must_fail git branch --set-upstream origin/main
fatal: the '--set-upstream' option is no longer supported. Please use '--track' or '--set-upstream-to' instead.
ok 115 - disabled option --set-upstream fails
expecting success of 3200.116 '--set-upstream-to notices an error to set branch as own upstream':
git branch --set-upstream-to refs/heads/my13 my13 2>actual &&
cat >expect <<-\EOF &&
warning: not setting branch 'my13' as its own upstream
EOF
test_expect_code 1 git config branch.my13.remote &&
test_expect_code 1 git config branch.my13.merge &&
test_cmp expect actual
ok 116 - --set-upstream-to notices an error to set branch as own upstream
expecting success of 3200.117 'git checkout -b g/h/i -l should create a branch and a log':
GIT_COMMITTER_DATE="2005-05-26 23:30" \
git checkout -b g/h/i -l main &&
test_path_is_file .git/refs/heads/g/h/i &&
test_path_is_file .git/logs/refs/heads/g/h/i &&
test_cmp expect .git/logs/refs/heads/g/h/i
Switched to a new branch 'g/h/i'
ok 117 - git checkout -b g/h/i -l should create a branch and a log
expecting success of 3200.118 'checkout -b makes reflog by default':
git checkout main &&
git config --unset core.logAllRefUpdates &&
git checkout -b alpha &&
git rev-parse --verify alpha@{0}
Switched to branch 'main'
Switched to a new branch 'alpha'
da664a6b0bffeb0904609e9e14e1beeecfe55c4a
ok 118 - checkout -b makes reflog by default
expecting success of 3200.119 'checkout -b does not make reflog when core.logAllRefUpdates = false':
git checkout main &&
git config core.logAllRefUpdates false &&
git checkout -b beta &&
test_must_fail git rev-parse --verify beta@{0}
Switched to branch 'main'
Switched to a new branch 'beta'
fatal: Needed a single revision
ok 119 - checkout -b does not make reflog when core.logAllRefUpdates = false
expecting success of 3200.120 'checkout -b with -l makes reflog when core.logAllRefUpdates = false':
git checkout main &&
git checkout -lb gamma &&
git config --unset core.logAllRefUpdates &&
git rev-parse --verify gamma@{0}
Switched to branch 'main'
Switched to a new branch 'gamma'
da664a6b0bffeb0904609e9e14e1beeecfe55c4a
ok 120 - checkout -b with -l makes reflog when core.logAllRefUpdates = false
expecting success of 3200.121 'avoid ambiguous track and advise':
git config branch.autosetupmerge true &&
git config remote.ambi1.url lalala &&
git config remote.ambi1.fetch refs/heads/lalala:refs/heads/main &&
git config remote.ambi2.url lilili &&
git config remote.ambi2.fetch refs/heads/lilili:refs/heads/main &&
cat <<-EOF >expected &&
fatal: not tracking: ambiguous information for ref 'refs/heads/main'
hint: There are multiple remotes whose fetch refspecs map to the remote
hint: tracking ref 'refs/heads/main':
hint: ambi1
hint: ambi2
hint:
hint: This is typically a configuration error.
hint:
hint: To support setting up tracking branches, ensure that
hint: different remotes' fetch refspecs map into different
hint: tracking namespaces.
EOF
test_must_fail git branch all1 main 2>actual &&
test_cmp expected actual &&
test -z "$(git config branch.all1.merge)"
ok 121 - avoid ambiguous track and advise
expecting success of 3200.122 'autosetuprebase local on a tracked local branch':
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
git config branch.autosetuprebase local &&
(git show-ref -q refs/remotes/local/o || git fetch local) &&
git branch mybase &&
git branch --track myr1 mybase &&
test "$(git config branch.myr1.remote)" = . &&
test "$(git config branch.myr1.merge)" = refs/heads/mybase &&
test "$(git config branch.myr1.rebase)" = true
From .
* [new branch] all1 -> local/all1
* [new branch] alpha -> local/alpha
* [new branch] beta -> local/beta
* [new branch] g/h/i -> local/g/h/i
* [new branch] gamma -> local/gamma
* [new branch] locked -> local/locked
* [new branch] my-other -> local/my-other
* [new branch] my12 -> local/my12
* [new branch] my13 -> local/my13
* [new branch] my14 -> local/my14
* [new branch] my15 -> local/my15
* [new branch] mytag12 -> local/mytag12
branch 'myr1' set up to track 'mybase' by rebasing.
ok 122 - autosetuprebase local on a tracked local branch
expecting success of 3200.123 'autosetuprebase always on a tracked local branch':
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
git config branch.autosetuprebase always &&
(git show-ref -q refs/remotes/local/o || git fetch local) &&
git branch mybase2 &&
git branch --track myr2 mybase &&
test "$(git config branch.myr2.remote)" = . &&
test "$(git config branch.myr2.merge)" = refs/heads/mybase &&
test "$(git config branch.myr2.rebase)" = true
From .
* [new branch] mybase -> local/mybase
* [new branch] myr1 -> local/myr1
branch 'myr2' set up to track 'mybase' by rebasing.
ok 123 - autosetuprebase always on a tracked local branch
expecting success of 3200.124 'autosetuprebase remote on a tracked local branch':
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
git config branch.autosetuprebase remote &&
(git show-ref -q refs/remotes/local/o || git fetch local) &&
git branch mybase3 &&
git branch --track myr3 mybase2 &&
test "$(git config branch.myr3.remote)" = . &&
test "$(git config branch.myr3.merge)" = refs/heads/mybase2 &&
! test "$(git config branch.myr3.rebase)" = true
From .
* [new branch] mybase2 -> local/mybase2
* [new branch] myr2 -> local/myr2
branch 'myr3' set up to track 'mybase2'.
ok 124 - autosetuprebase remote on a tracked local branch
expecting success of 3200.125 'autosetuprebase never on a tracked local branch':
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
git config branch.autosetuprebase never &&
(git show-ref -q refs/remotes/local/o || git fetch local) &&
git branch mybase4 &&
git branch --track myr4 mybase2 &&
test "$(git config branch.myr4.remote)" = . &&
test "$(git config branch.myr4.merge)" = refs/heads/mybase2 &&
! test "$(git config branch.myr4.rebase)" = true
From .
* [new branch] mybase3 -> local/mybase3
* [new branch] myr3 -> local/myr3
branch 'myr4' set up to track 'mybase2'.
ok 125 - autosetuprebase never on a tracked local branch
expecting success of 3200.126 'autosetuprebase local on a tracked remote branch':
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
git config branch.autosetuprebase local &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --track myr5 local/main &&
test "$(git config branch.myr5.remote)" = local &&
test "$(git config branch.myr5.merge)" = refs/heads/main &&
! test "$(git config branch.myr5.rebase)" = true
branch 'myr5' set up to track 'local/main'.
ok 126 - autosetuprebase local on a tracked remote branch
expecting success of 3200.127 'autosetuprebase never on a tracked remote branch':
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
git config branch.autosetuprebase never &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --track myr6 local/main &&
test "$(git config branch.myr6.remote)" = local &&
test "$(git config branch.myr6.merge)" = refs/heads/main &&
! test "$(git config branch.myr6.rebase)" = true
branch 'myr6' set up to track 'local/main'.
ok 127 - autosetuprebase never on a tracked remote branch
expecting success of 3200.128 'autosetuprebase remote on a tracked remote branch':
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
git config branch.autosetuprebase remote &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --track myr7 local/main &&
test "$(git config branch.myr7.remote)" = local &&
test "$(git config branch.myr7.merge)" = refs/heads/main &&
test "$(git config branch.myr7.rebase)" = true
branch 'myr7' set up to track 'local/main' by rebasing.
ok 128 - autosetuprebase remote on a tracked remote branch
expecting success of 3200.129 'autosetuprebase always on a tracked remote branch':
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
git config branch.autosetuprebase remote &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --track myr8 local/main &&
test "$(git config branch.myr8.remote)" = local &&
test "$(git config branch.myr8.merge)" = refs/heads/main &&
test "$(git config branch.myr8.rebase)" = true
branch 'myr8' set up to track 'local/main' by rebasing.
ok 129 - autosetuprebase always on a tracked remote branch
expecting success of 3200.130 'autosetuprebase unconfigured on a tracked remote branch':
git config --unset branch.autosetuprebase &&
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --track myr9 local/main &&
test "$(git config branch.myr9.remote)" = local &&
test "$(git config branch.myr9.merge)" = refs/heads/main &&
test "z$(git config branch.myr9.rebase)" = z
branch 'myr9' set up to track 'local/main'.
ok 130 - autosetuprebase unconfigured on a tracked remote branch
expecting success of 3200.131 'autosetuprebase unconfigured on a tracked local branch':
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/o || git fetch local) &&
git branch mybase10 &&
git branch --track myr10 mybase2 &&
test "$(git config branch.myr10.remote)" = . &&
test "$(git config branch.myr10.merge)" = refs/heads/mybase2 &&
test "z$(git config branch.myr10.rebase)" = z
From .
* [new branch] mybase4 -> local/mybase4
* [new branch] myr4 -> local/myr4
* [new branch] myr5 -> local/myr5
* [new branch] myr6 -> local/myr6
* [new branch] myr7 -> local/myr7
* [new branch] myr8 -> local/myr8
* [new branch] myr9 -> local/myr9
branch 'myr10' set up to track 'mybase2'.
ok 131 - autosetuprebase unconfigured on a tracked local branch
expecting success of 3200.132 'autosetuprebase unconfigured on untracked local branch':
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --no-track myr11 mybase2 &&
test "z$(git config branch.myr11.remote)" = z &&
test "z$(git config branch.myr11.merge)" = z &&
test "z$(git config branch.myr11.rebase)" = z
ok 132 - autosetuprebase unconfigured on untracked local branch
expecting success of 3200.133 'autosetuprebase unconfigured on untracked remote branch':
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --no-track myr12 local/main &&
test "z$(git config branch.myr12.remote)" = z &&
test "z$(git config branch.myr12.merge)" = z &&
test "z$(git config branch.myr12.rebase)" = z
ok 133 - autosetuprebase unconfigured on untracked remote branch
expecting success of 3200.134 'autosetuprebase never on an untracked local branch':
git config branch.autosetuprebase never &&
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --no-track myr13 mybase2 &&
test "z$(git config branch.myr13.remote)" = z &&
test "z$(git config branch.myr13.merge)" = z &&
test "z$(git config branch.myr13.rebase)" = z
ok 134 - autosetuprebase never on an untracked local branch
expecting success of 3200.135 'autosetuprebase local on an untracked local branch':
git config branch.autosetuprebase local &&
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --no-track myr14 mybase2 &&
test "z$(git config branch.myr14.remote)" = z &&
test "z$(git config branch.myr14.merge)" = z &&
test "z$(git config branch.myr14.rebase)" = z
ok 135 - autosetuprebase local on an untracked local branch
expecting success of 3200.136 'autosetuprebase remote on an untracked local branch':
git config branch.autosetuprebase remote &&
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --no-track myr15 mybase2 &&
test "z$(git config branch.myr15.remote)" = z &&
test "z$(git config branch.myr15.merge)" = z &&
test "z$(git config branch.myr15.rebase)" = z
ok 136 - autosetuprebase remote on an untracked local branch
expecting success of 3200.137 'autosetuprebase always on an untracked local branch':
git config branch.autosetuprebase always &&
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --no-track myr16 mybase2 &&
test "z$(git config branch.myr16.remote)" = z &&
test "z$(git config branch.myr16.merge)" = z &&
test "z$(git config branch.myr16.rebase)" = z
ok 137 - autosetuprebase always on an untracked local branch
expecting success of 3200.138 'autosetuprebase never on an untracked remote branch':
git config branch.autosetuprebase never &&
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --no-track myr17 local/main &&
test "z$(git config branch.myr17.remote)" = z &&
test "z$(git config branch.myr17.merge)" = z &&
test "z$(git config branch.myr17.rebase)" = z
ok 138 - autosetuprebase never on an untracked remote branch
expecting success of 3200.139 'autosetuprebase local on an untracked remote branch':
git config branch.autosetuprebase local &&
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --no-track myr18 local/main &&
test "z$(git config branch.myr18.remote)" = z &&
test "z$(git config branch.myr18.merge)" = z &&
test "z$(git config branch.myr18.rebase)" = z
ok 139 - autosetuprebase local on an untracked remote branch
expecting success of 3200.140 'autosetuprebase remote on an untracked remote branch':
git config branch.autosetuprebase remote &&
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --no-track myr19 local/main &&
test "z$(git config branch.myr19.remote)" = z &&
test "z$(git config branch.myr19.merge)" = z &&
test "z$(git config branch.myr19.rebase)" = z
ok 140 - autosetuprebase remote on an untracked remote branch
expecting success of 3200.141 'autosetuprebase always on an untracked remote branch':
git config branch.autosetuprebase always &&
git config remote.local.url . &&
git config remote.local.fetch refs/heads/*:refs/remotes/local/* &&
(git show-ref -q refs/remotes/local/main || git fetch local) &&
git branch --no-track myr20 local/main &&
test "z$(git config branch.myr20.remote)" = z &&
test "z$(git config branch.myr20.merge)" = z &&
test "z$(git config branch.myr20.rebase)" = z
ok 141 - autosetuprebase always on an untracked remote branch
expecting success of 3200.142 'autosetuprebase always on detached HEAD':
git config branch.autosetupmerge always &&
test_when_finished git checkout main &&
git checkout HEAD^0 &&
git branch my11 &&
test -z "$(git config branch.my11.remote)" &&
test -z "$(git config branch.my11.merge)"
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at da664a6 Second commit.
Switched to branch 'main'
ok 142 - autosetuprebase always on detached HEAD
expecting success of 3200.143 'detect misconfigured autosetuprebase (bad value)':
git config branch.autosetuprebase garbage &&
test_must_fail git branch
error: malformed value for branch.autosetuprebase
fatal: bad config variable 'branch.autosetuprebase' in file '.git/config' at line 87
ok 143 - detect misconfigured autosetuprebase (bad value)
expecting success of 3200.144 'detect misconfigured autosetuprebase (no value)':
git config --unset branch.autosetuprebase &&
echo "[branch] autosetuprebase" >>.git/config &&
test_must_fail git branch &&
git config --unset branch.autosetuprebase
error: missing value for 'branch.autosetuprebase'
fatal: bad config variable 'branch.autosetuprebase' in file '.git/config' at line 130
ok 144 - detect misconfigured autosetuprebase (no value)
expecting success of 3200.145 'attempt to delete a branch without base and unmerged to HEAD':
git checkout my9 &&
git config --unset branch.my8.merge &&
test_must_fail git branch -d my8
Switched to branch 'my9'
error: The branch 'my8' is not fully merged.
If you are sure you want to delete it, run 'git branch -D my8'.
ok 145 - attempt to delete a branch without base and unmerged to HEAD
expecting success of 3200.146 'attempt to delete a branch merged to its base':
# we are on my9 which is the initial commit; traditionally
# we would not have allowed deleting my8 that is not merged
# to my9, but it is set to track main that already has my8
git config branch.my8.merge refs/heads/main &&
git branch -d my8
warning: deleting branch 'my8' that has been merged to
'refs/heads/main', but not yet merged to HEAD.
Deleted branch my8 (was da664a6).
ok 146 - attempt to delete a branch merged to its base
expecting success of 3200.147 'attempt to delete a branch merged to its base':
git checkout main &&
echo Third >>A &&
git commit -m "Third commit" A &&
git branch -t my10 my9 &&
git branch -f my10 HEAD^ &&
# we are on main which is at the third commit, and my10
# is behind us, so traditionally we would have allowed deleting
# it; but my10 is set to track my9 that is further behind.
test_must_fail git branch -d my10
Switched to branch 'main'
[main 16fbf09] Third commit
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
branch 'my10' set up to track 'my9'.
warning: not deleting branch 'my10' that is not yet merged to
'refs/heads/my9', even though it is merged to HEAD.
error: The branch 'my10' is not fully merged.
If you are sure you want to delete it, run 'git branch -D my10'.
ok 147 - attempt to delete a branch merged to its base
expecting success of 3200.148 'branch --delete --force removes dangling branch':
git checkout main &&
test_commit unstable &&
hash=$(git rev-parse HEAD) &&
objpath=$(echo $hash | sed -e "s|^..|.git/objects/&/|") &&
git branch --no-track dangling &&
mv $objpath $objpath.x &&
test_when_finished "mv $objpath.x $objpath" &&
git branch --delete --force dangling &&
git for-each-ref refs/heads/dangling >actual &&
test_must_be_empty actual
Already on 'main'
[main d984d0c] unstable
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 unstable.t
Deleted branch dangling (was d984d0c).
ok 148 - branch --delete --force removes dangling branch
expecting success of 3200.149 'use --edit-description':
EDITOR=: git branch --edit-description &&
test_expect_code 1 git config branch.main.description &&
write_script editor <<-\EOF &&
echo "New contents" >"$1"
EOF
EDITOR=./editor git branch --edit-description &&
write_script editor <<-\EOF &&
git stripspace -s <"$1" >"EDITOR_OUTPUT"
EOF
EDITOR=./editor git branch --edit-description &&
echo "New contents" >expect &&
test_cmp expect EDITOR_OUTPUT
ok 149 - use --edit-description
expecting success of 3200.150 'detect typo in branch name when using --edit-description':
write_script editor <<-\EOF &&
echo "New contents" >"$1"
EOF
test_must_fail env EDITOR=./editor git branch --edit-description no-such-branch
error: No branch named 'no-such-branch'.
ok 150 - detect typo in branch name when using --edit-description
expecting success of 3200.151 'refuse --edit-description on unborn branch for now':
test_when_finished "git checkout main" &&
write_script editor <<-\EOF &&
echo "New contents" >"$1"
EOF
git checkout --orphan unborn &&
test_must_fail env EDITOR=./editor git branch --edit-description
Switched to a new branch 'unborn'
error: No commit on branch 'unborn' yet.
Switched to branch 'main'
ok 151 - refuse --edit-description on unborn branch for now
expecting success of 3200.152 '--merged catches invalid object names':
test_must_fail git branch --merged 0000000000000000000000000000000000000000
error: option `merged' must point to a commit
ok 152 - --merged catches invalid object names
expecting success of 3200.153 '--list during rebase':
test_when_finished "reset_rebase" &&
git checkout main &&
FAKE_LINES="1 edit 2" &&
export FAKE_LINES &&
set_fake_editor &&
git rebase -i HEAD~2 &&
git branch --list >actual &&
test_i18ngrep "rebasing main" actual
Already on 'main'
rebase -i script before editing:
pick 16fbf09 Third commit
pick d984d0c unstable
rebase -i script after editing:
pick 16fbf09 Third commit
edit d984d0c unstable
Rebasing (2/2)
Stopped at d984d0c... unstable
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
* (no branch, rebasing main)
HEAD is now at d984d0c unstable
Removing .gitconfig
Removing EDITOR_OUTPUT
Removing actual
Removing actual.0abbrev
Removing actual.36abbrev
Removing actual.abbrev
Removing actual.config
Removing actual.default
Removing actual.noabbrev
Removing actual.noabbrev-conf
Removing config.branch
Removing editor
Removing err
Removing expect
Removing expect.config
Removing expected
Removing fake-editor.sh
Removing our.dir
Removing real-u
Removing subdir.dir
ok 153 - --list during rebase
expecting success of 3200.154 '--list during rebase from detached HEAD':
test_when_finished "reset_rebase && git checkout main" &&
git checkout main^0 &&
oid=$(git rev-parse --short HEAD) &&
FAKE_LINES="1 edit 2" &&
export FAKE_LINES &&
set_fake_editor &&
git rebase -i HEAD~2 &&
git branch --list >actual &&
test_i18ngrep "rebasing detached HEAD $oid" actual
Note: switching to 'main^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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at d984d0c unstable
rebase -i script before editing:
pick 16fbf09 Third commit
pick d984d0c unstable
rebase -i script after editing:
pick 16fbf09 Third commit
edit d984d0c unstable
Rebasing (2/2)
Stopped at d984d0c... unstable
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
* (no branch, rebasing detached HEAD d984d0c)
HEAD is now at d984d0c unstable
Removing actual
Removing fake-editor.sh
Switched to branch 'main'
ok 154 - --list during rebase from detached HEAD
expecting success of 3200.155 'tracking with unexpected .fetch refspec':
rm -rf a b c d &&
git init -b main a &&
(
cd a &&
test_commit a
) &&
git init -b main b &&
(
cd b &&
test_commit b
) &&
git init -b main c &&
(
cd c &&
test_commit c &&
git remote add a ../a &&
git remote add b ../b &&
git fetch --all
) &&
git init -b main d &&
(
cd d &&
git remote add c ../c &&
git config remote.c.fetch "+refs/remotes/*:refs/remotes/*" &&
git fetch c &&
git branch --track local/a/main remotes/a/main &&
test "$(git config branch.local/a/main.remote)" = "c" &&
test "$(git config branch.local/a/main.merge)" = "refs/remotes/a/main" &&
git rev-parse --verify a >expect &&
git rev-parse --verify local/a/main >actual &&
test_cmp expect actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/a/.git/
[main (root-commit) 7f32f40] a
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/b/.git/
[main (root-commit) 47d9752] b
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/c/.git/
[main (root-commit) 7a0a759] c
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 c.t
Fetching a
From ../a
* [new branch] main -> a/main
* [new tag] a -> a
Fetching b
From ../b
* [new branch] main -> b/main
* [new tag] b -> b
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/d/.git/
From ../c
* [new ref] a/main -> a/main
* [new ref] b/main -> b/main
* [new tag] a -> a
* [new tag] b -> b
branch 'local/a/main' set up to track 'c/refs/remotes/a/main'.
ok 155 - tracking with unexpected .fetch refspec
expecting success of 3200.156 'configured committerdate sort':
git init -b main sort &&
(
cd sort &&
git config branch.sort committerdate &&
test_commit initial &&
git checkout -b a &&
test_commit a &&
git checkout -b c &&
test_commit c &&
git checkout -b b &&
test_commit b &&
git branch >actual &&
cat >expect <<-\EOF &&
main
a
c
* b
EOF
test_cmp expect actual
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3200-branch/sort/.git/
[main (root-commit) 23fa7ba] initial
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 initial.t
Switched to a new branch 'a'
[a 6ed220f] a
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 a.t
Switched to a new branch 'c'
[c f87a5d9] c
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 c.t
Switched to a new branch 'b'
[b 6691410] b
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 b.t
ok 156 - configured committerdate sort
expecting success of 3200.157 'option override configured sort':
(
cd sort &&
git config branch.sort committerdate &&
git branch --sort=refname >actual &&
cat >expect <<-\EOF &&
a
* b
c
main
EOF
test_cmp expect actual
)
ok 157 - option override configured sort
expecting success of 3200.158 'invalid sort parameter in configuration':
(
cd sort &&
git config branch.sort "v:notvalid" &&
# this works in the "listing" mode, so bad sort key
# is a dying offence.
test_must_fail git branch &&
# these do not need to use sorting, and should all
# succeed
git branch newone main &&
git branch -c newone newerone &&
git branch -m newone newestone &&
git branch -d newerone newestone
)
fatal: unknown field name: notvalid
Deleted branch newerone (was 23fa7ba).
Deleted branch newestone (was 23fa7ba).
ok 158 - invalid sort parameter in configuration
expecting success of 3200.159 'tracking info copied with --track=inherit':
git branch --track=inherit foo2 my1 &&
test_cmp_config local branch.foo2.remote &&
test_cmp_config refs/heads/main branch.foo2.merge
branch 'foo2' set up to track 'local/main'.
ok 159 - tracking info copied with --track=inherit
expecting success of 3200.160 'tracking info copied with autoSetupMerge=inherit':
test_unconfig branch.autoSetupMerge &&
# default config does not copy tracking info
git branch foo-no-inherit my1 &&
test_cmp_config "" --default "" branch.foo-no-inherit.remote &&
test_cmp_config "" --default "" branch.foo-no-inherit.merge &&
# with autoSetupMerge=inherit, we copy tracking info from my1
test_config branch.autoSetupMerge inherit &&
git branch foo3 my1 &&
test_cmp_config local branch.foo3.remote &&
test_cmp_config refs/heads/main branch.foo3.merge &&
# no tracking info to inherit from main
git branch main2 main &&
test_cmp_config "" --default "" branch.main2.remote &&
test_cmp_config "" --default "" branch.main2.merge
branch 'foo3' set up to track 'local/main'.
warning: asked to inherit tracking from 'main', but no remote is set
ok 160 - tracking info copied with autoSetupMerge=inherit
expecting success of 3200.161 '--track overrides branch.autoSetupMerge':
test_config branch.autoSetupMerge inherit &&
git branch --track=direct foo4 my1 &&
test_cmp_config . branch.foo4.remote &&
test_cmp_config refs/heads/my1 branch.foo4.merge &&
git branch --no-track foo5 my1 &&
test_cmp_config "" --default "" branch.foo5.remote &&
test_cmp_config "" --default "" branch.foo5.merge
branch 'foo4' set up to track 'my1'.
ok 161 - --track overrides branch.autoSetupMerge
# passed all 161 test(s)
1..161
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3211-peel-ref.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3211-peel-ref/.git/
expecting success of 3211.1 'create annotated tag in refs/tags':
test_commit base &&
git tag -m annotated foo
[main (root-commit) d1ff1c9] base
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 base.t
ok 1 - create annotated tag in refs/tags
expecting success of 3211.2 'create annotated tag outside of refs/tags':
git update-ref refs/outside/foo refs/tags/foo
ok 2 - create annotated tag outside of refs/tags
expecting success of 3211.3 'set up expected show-ref output':
{
print_ref "refs/heads/main" &&
print_ref "refs/outside/foo" &&
print_ref "refs/outside/foo^{}" &&
print_ref "refs/tags/base" &&
print_ref "refs/tags/foo" &&
print_ref "refs/tags/foo^{}"
} >expect
ok 3 - set up expected show-ref output
expecting success of 3211.4 'refs are peeled outside of refs/tags (loose)':
git show-ref -d >actual &&
test_cmp expect actual
ok 4 - refs are peeled outside of refs/tags (loose)
expecting success of 3211.5 'refs are peeled outside of refs/tags (packed)':
git pack-refs --all &&
git show-ref -d >actual &&
test_cmp expect actual
ok 5 - refs are peeled outside of refs/tags (packed)
expecting success of 3211.6 'create old-style pack-refs without fully-peeled':
# Git no longer writes without fully-peeled, so we just write our own
# from scratch; we could also munge the existing file to remove the
# fully-peeled bits, but that seems even more prone to failure,
# especially if the format ever changes again. At least this way we
# know we are emulating exactly what an older git would have written.
{
echo "# pack-refs with: peeled " &&
print_ref "refs/heads/main" &&
print_ref "refs/outside/foo" &&
print_ref "refs/tags/base" &&
print_ref "refs/tags/foo" &&
echo "^$(git rev-parse "refs/tags/foo^{}")"
} >tmp &&
mv tmp .git/packed-refs
ok 6 - create old-style pack-refs without fully-peeled
expecting success of 3211.7 'refs are peeled outside of refs/tags (old packed)':
git show-ref -d >actual &&
test_cmp expect actual
ok 7 - refs are peeled outside of refs/tags (old packed)
expecting success of 3211.8 'peeled refs survive deletion of packed ref':
git pack-refs --all &&
cp .git/packed-refs fully-peeled &&
git branch yadda &&
git pack-refs --all &&
git branch -d yadda &&
test_cmp fully-peeled .git/packed-refs
Deleted branch yadda (was d1ff1c9).
ok 8 - peeled refs survive deletion of packed ref
# passed all 8 test(s)
1..8
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3300-funny-names.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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/" <ls-files.z >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/^[^ ]* //" <ls-tree >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/" <diff-index.z >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/ <diff-tree.z >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/" <out >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/" <out >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%/" <diff >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%/" <diff >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 <diff >diffstat &&
sed -e "s/|.*//" -e "s/ *\$//" <diffstat >current &&
test_cmp expected current
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 <diff >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 <diff >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" <git-diff >diff &&
git apply --numstat <diff >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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3210-pack-refs.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3210-pack-refs/.git/
expecting success of 3210.1 'enable reflogs':
git config core.logallrefupdates true
ok 1 - enable reflogs
expecting success of 3210.2 'prepare a trivial repository': echo Hello > A &&
git update-index --add A &&
git commit -m "Initial commit." &&
HEAD=$(git rev-parse --verify HEAD)
[main (root-commit) 2daebe9] Initial commit.
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 A
ok 2 - prepare a trivial repository
expecting success of 3210.3 'see if git show-ref works as expected': git branch a &&
SHA1=$(cat .git/refs/heads/a) &&
echo "$SHA1 refs/heads/a" >expect &&
git show-ref a >result &&
test_cmp expect result
ok 3 - see if git show-ref works as expected
expecting success of 3210.4 'see if a branch still exists when packed': git branch b &&
git pack-refs --all &&
rm -f .git/refs/heads/b &&
echo "$SHA1 refs/heads/b" >expect &&
git show-ref b >result &&
test_cmp expect result
ok 4 - see if a branch still exists when packed
expecting success of 3210.5 'git branch c/d should barf if branch c exists':
git branch c &&
git pack-refs --all &&
rm -f .git/refs/heads/c &&
test_must_fail git branch c/d
fatal: cannot lock ref 'refs/heads/c/d': 'refs/heads/c' exists; cannot create 'refs/heads/c/d'
ok 5 - git branch c/d should barf if branch c exists
expecting success of 3210.6 'see if a branch still exists after git pack-refs --prune': git branch e &&
git pack-refs --all --prune &&
echo "$SHA1 refs/heads/e" >expect &&
git show-ref e >result &&
test_cmp expect result
ok 6 - see if a branch still exists after git pack-refs --prune
expecting success of 3210.7 'see if git pack-refs --prune remove ref files':
git branch f &&
git pack-refs --all --prune &&
! test -f .git/refs/heads/f
ok 7 - see if git pack-refs --prune remove ref files
expecting success of 3210.8 'see if git pack-refs --prune removes empty dirs':
git branch r/s/t &&
git pack-refs --all --prune &&
! test -e .git/refs/heads/r
ok 8 - see if git pack-refs --prune removes empty dirs
expecting success of 3210.9 'git branch g should work when git branch g/h has been deleted': git branch g/h &&
git pack-refs --all --prune &&
git branch -d g/h &&
git branch g &&
git pack-refs --all &&
git branch -d g
Deleted branch g/h (was 2daebe9).
Deleted branch g (was 2daebe9).
ok 9 - git branch g should work when git branch g/h has been deleted
expecting success of 3210.10 'git branch i/j/k should barf if branch i exists':
git branch i &&
git pack-refs --all --prune &&
test_must_fail git branch i/j/k
fatal: cannot lock ref 'refs/heads/i/j/k': 'refs/heads/i' exists; cannot create 'refs/heads/i/j/k'
ok 10 - git branch i/j/k should barf if branch i exists
expecting success of 3210.11 'test git branch k after branch k/l/m and k/lm have been deleted': git branch k/l &&
git branch k/lm &&
git branch -d k/l &&
git branch k/l/m &&
git branch -d k/l/m &&
git branch -d k/lm &&
git branch k
Deleted branch k/l (was 2daebe9).
Deleted branch k/l/m (was 2daebe9).
Deleted branch k/lm (was 2daebe9).
ok 11 - test git branch k after branch k/l/m and k/lm have been deleted
expecting success of 3210.12 'test git branch n after some branch deletion and pruning': git branch n/o &&
git branch n/op &&
git branch -d n/o &&
git branch n/o/p &&
git branch -d n/op &&
git pack-refs --all --prune &&
git branch -d n/o/p &&
git branch n
Deleted branch n/o (was 2daebe9).
Deleted branch n/op (was 2daebe9).
Deleted branch n/o/p (was 2daebe9).
ok 12 - test git branch n after some branch deletion and pruning
expecting success of 3210.13 'see if up-to-date packed refs are preserved': git branch q &&
git pack-refs --all --prune &&
git update-ref refs/heads/q refs/heads/q &&
! test -f .git/refs/heads/q
ok 13 - see if up-to-date packed refs are preserved
expecting success of 3210.14 'pack, prune and repack':
git tag foo &&
git pack-refs --all --prune &&
git show-ref >all-of-them &&
git pack-refs &&
git show-ref >again &&
test_cmp all-of-them again
ok 14 - pack, prune and repack
expecting success of 3210.15 'explicit pack-refs with dangling packed reference':
git commit --allow-empty -m "soon to be garbage-collected" &&
git pack-refs --all &&
git reset --hard HEAD^ &&
git reflog expire --expire=all --all &&
git prune --expire=all &&
git pack-refs --all 2>result &&
test_must_be_empty result
[main 6d2fc87] soon to be garbage-collected
Author: A U Thor <author@example.com>
HEAD is now at 2daebe9 Initial commit.
ok 15 - explicit pack-refs with dangling packed reference
expecting success of 3210.16 'delete ref with dangling packed version':
git checkout -b lamb &&
git commit --allow-empty -m "future garbage" &&
git pack-refs --all &&
git reset --hard HEAD^ &&
git checkout main &&
git reflog expire --expire=all --all &&
git prune --expire=all &&
git branch -d lamb 2>result &&
test_must_be_empty result
Switched to a new branch 'lamb'
[lamb ce057e0] future garbage
Author: A U Thor <author@example.com>
HEAD is now at 2daebe9 Initial commit.
Switched to branch 'main'
Deleted branch lamb (was 2daebe9).
ok 16 - delete ref with dangling packed version
expecting success of 3210.17 'delete ref while another dangling packed ref':
git branch lamb &&
git commit --allow-empty -m "future garbage" &&
git pack-refs --all &&
git reset --hard HEAD^ &&
git reflog expire --expire=all --all &&
git prune --expire=all &&
git branch -d lamb 2>result &&
test_must_be_empty result
[main ce057e0] future garbage
Author: A U Thor <author@example.com>
HEAD is now at 2daebe9 Initial commit.
Deleted branch lamb (was 2daebe9).
ok 17 - delete ref while another dangling packed ref
expecting success of 3210.18 'pack ref directly below refs/':
git update-ref refs/top HEAD &&
git pack-refs --all --prune &&
grep refs/top .git/packed-refs &&
test_path_is_missing .git/refs/top
2daebe96d7fd03d28875d852f87c06a18f4a6639 refs/top
ok 18 - pack ref directly below refs/
expecting success of 3210.19 'do not pack ref in refs/bisect':
git update-ref refs/bisect/local HEAD &&
git pack-refs --all --prune &&
! grep refs/bisect/local .git/packed-refs >/dev/null &&
test_path_is_file .git/refs/bisect/local
ok 19 - do not pack ref in refs/bisect
expecting success of 3210.20 'disable reflogs':
git config core.logallrefupdates false &&
rm -rf .git/logs
ok 20 - disable reflogs
expecting success of 3210.21 'create packed foo/bar/baz branch':
git branch foo/bar/baz &&
git pack-refs --all --prune &&
test_path_is_missing .git/refs/heads/foo/bar/baz &&
test_must_fail git reflog exists refs/heads/foo/bar/baz
ok 21 - create packed foo/bar/baz branch
expecting success of 3210.22 'notice d/f conflict with existing directory':
test_must_fail git branch foo &&
test_must_fail git branch foo/bar
fatal: cannot lock ref 'refs/heads/foo': 'refs/heads/foo/bar/baz' exists; cannot create 'refs/heads/foo'
fatal: cannot lock ref 'refs/heads/foo/bar': 'refs/heads/foo/bar/baz' exists; cannot create 'refs/heads/foo/bar'
ok 22 - notice d/f conflict with existing directory
expecting success of 3210.23 'existing directory reports concrete ref':
test_must_fail git branch foo 2>stderr &&
test_i18ngrep refs/heads/foo/bar/baz stderr
fatal: cannot lock ref 'refs/heads/foo': 'refs/heads/foo/bar/baz' exists; cannot create 'refs/heads/foo'
ok 23 - existing directory reports concrete ref
expecting success of 3210.24 'notice d/f conflict with existing ref':
test_must_fail git branch foo/bar/baz/extra &&
test_must_fail git branch foo/bar/baz/lots/of/extra/components
fatal: cannot lock ref 'refs/heads/foo/bar/baz/extra': 'refs/heads/foo/bar/baz' exists; cannot create 'refs/heads/foo/bar/baz/extra'
fatal: cannot lock ref 'refs/heads/foo/bar/baz/lots/of/extra/components': 'refs/heads/foo/bar/baz' exists; cannot create 'refs/heads/foo/bar/baz/lots/of/extra/components'
ok 24 - notice d/f conflict with existing ref
expecting success of 3210.25 'reject packed-refs with unterminated line':
cp .git/packed-refs .git/packed-refs.bak &&
test_when_finished "mv .git/packed-refs.bak .git/packed-refs" &&
printf "%s" "$HEAD refs/zzzzz" >>.git/packed-refs &&
echo "fatal: unterminated line in .git/packed-refs: $HEAD refs/zzzzz" >expected_err &&
test_must_fail git for-each-ref >out 2>err &&
test_cmp expected_err err
ok 25 - reject packed-refs with unterminated line
expecting success of 3210.26 'reject packed-refs containing junk':
cp .git/packed-refs .git/packed-refs.bak &&
test_when_finished "mv .git/packed-refs.bak .git/packed-refs" &&
printf "%s\n" "bogus content" >>.git/packed-refs &&
echo "fatal: unexpected line in .git/packed-refs: bogus content" >expected_err &&
test_must_fail git for-each-ref >out 2>err &&
test_cmp expected_err err
ok 26 - reject packed-refs containing junk
expecting success of 3210.27 'reject packed-refs with a short SHA-1':
cp .git/packed-refs .git/packed-refs.bak &&
test_when_finished "mv .git/packed-refs.bak .git/packed-refs" &&
printf "%.7s %s\n" $HEAD refs/zzzzz >>.git/packed-refs &&
printf "fatal: unexpected line in .git/packed-refs: %.7s %s\n" $HEAD refs/zzzzz >expected_err &&
test_must_fail git for-each-ref >out 2>err &&
test_cmp expected_err err
ok 27 - reject packed-refs with a short SHA-1
expecting success of 3210.28 'timeout if packed-refs.lock exists':
LOCK=.git/packed-refs.lock &&
>"$LOCK" &&
test_when_finished "rm -f $LOCK" &&
test_must_fail git pack-refs --all --prune
fatal: Unable to create '/<<PKGBUILDDIR>>/t/trash directory.t3210-pack-refs/.git/packed-refs.lock': File exists.
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 28 - timeout if packed-refs.lock exists
expecting success of 3210.29 'retry acquiring packed-refs.lock':
LOCK=.git/packed-refs.lock &&
>"$LOCK" &&
test_when_finished "wait && rm -f $LOCK" &&
{
( sleep 1 && rm -f $LOCK ) &
} &&
git -c core.packedrefstimeout=3000 pack-refs --all --prune
ok 29 - retry acquiring packed-refs.lock
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 3210.30 'pack symlinked packed-refs':
# First make sure that symlinking works when reading:
git update-ref refs/heads/lossy refs/heads/main &&
git for-each-ref >all-refs-before &&
mv .git/packed-refs .git/my-deviant-packed-refs &&
ln -s my-deviant-packed-refs .git/packed-refs &&
git for-each-ref >all-refs-linked &&
test_cmp all-refs-before all-refs-linked &&
git pack-refs --all --prune &&
git for-each-ref >all-refs-packed &&
test_cmp all-refs-before all-refs-packed &&
test -h .git/packed-refs &&
test "$(test_readlink .git/packed-refs)" = "my-deviant-packed-refs"
ok 30 - pack symlinked packed-refs
# passed all 30 test(s)
1..30
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3302-notes-index-expensive.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3302-notes-index-expensive/.git/
expecting success of 3302.1 'setup 10':
mkdir "$count" &&
(
cd "$count" &&
create_repo "$count"
)
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3302-notes-index-expensive/10/.git/
ok 1 - setup 10
expecting success of 3302.2 'notes work':
(
cd "$count" &&
test_notes "$count"
)
ok 2 - notes work
checking prerequisite: USR_BIN_TIME
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-USR_BIN_TIME" &&
(
cd "$TRASH_DIRECTORY/prereq-test-dir-USR_BIN_TIME" &&
test -x /usr/bin/time
)
prerequisite USR_BIN_TIME not satisfied
ok 3 # skip notes timing with /usr/bin/time (missing USR_BIN_TIME)
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 4 # skip setup 100 (missing EXPENSIVE)
ok 5 # skip notes work (missing EXPENSIVE)
ok 6 # skip notes timing with /usr/bin/time (missing EXPENSIVE,USR_BIN_TIME of USR_BIN_TIME,EXPENSIVE)
ok 7 # skip setup 1000 (missing EXPENSIVE)
ok 8 # skip notes work (missing EXPENSIVE)
ok 9 # skip notes timing with /usr/bin/time (missing EXPENSIVE,USR_BIN_TIME of USR_BIN_TIME,EXPENSIVE)
ok 10 # skip setup 10000 (missing EXPENSIVE)
ok 11 # skip notes work (missing EXPENSIVE)
ok 12 # skip notes timing with /usr/bin/time (missing EXPENSIVE,USR_BIN_TIME of USR_BIN_TIME,EXPENSIVE)
# passed all 12 test(s)
1..12
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3207-branch-submodule.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/.git/
expecting success of 3207.1 'setup superproject and submodule':
git config --global protocol.file.allow always &&
mkdir test_dirs &&
(
cd test_dirs &&
git init super &&
test_commit -C super foo &&
git init sub-sub-upstream &&
test_commit -C sub-sub-upstream foo &&
git init sub-upstream &&
# Submodule in a submodule
git -C sub-upstream submodule add "${pwd}/test_dirs/sub-sub-upstream" sub-sub &&
git -C sub-upstream commit -m "add submodule" &&
# Regular submodule
git -C super submodule add "${pwd}/test_dirs/sub-upstream" sub &&
# Submodule in a subdirectory
git -C super submodule add "${pwd}/test_dirs/sub-sub-upstream" second/sub &&
git -C super commit -m "add submodule" &&
git -C super config submodule.propagateBranches true &&
git -C super/sub submodule update --init
) &&
reset_test
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/super/.git/
[main (root-commit) ddd63c9] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/sub-sub-upstream/.git/
[main (root-commit) 946e985] foo
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 foo.t
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/sub-upstream/.git/
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/sub-upstream/sub-sub'...
done.
[main (root-commit) 8b96093] add submodule
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 100644 .gitmodules
create mode 160000 sub-sub
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/super/sub'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/super/second/sub'...
done.
[main 5b33058] add submodule
Author: A U Thor <author@example.com>
3 files changed, 8 insertions(+)
create mode 100644 .gitmodules
create mode 160000 second/sub
create mode 160000 sub
Submodule 'sub-sub' (/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/sub-sub-upstream) registered for path 'sub-sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/super/sub/sub-sub'...
done.
Submodule path 'sub-sub': checked out '946e985ab20de757ca5b872b16d64e92ff3803a9'
ok 1 - setup superproject and submodule
expecting success of 3207.2 '--recurse-submodules should create branches':
test_when_finished "reset_test" &&
(
cd super &&
git branch --recurse-submodules branch-a &&
git rev-parse branch-a &&
git -C sub rev-parse branch-a &&
git -C sub/sub-sub rev-parse branch-a &&
git -C second/sub rev-parse branch-a
)
submodule 'second/sub': creating branch 'branch-a'
submodule 'sub': creating branch 'branch-a'
submodule 'sub': submodule 'sub-sub': creating branch 'branch-a'
5b3305882bcfbd480c013914f081d14a697f2732
8b960934f7275300302f2aeb63cd672d510bf520
946e985ab20de757ca5b872b16d64e92ff3803a9
946e985ab20de757ca5b872b16d64e92ff3803a9
ok 2 - --recurse-submodules should create branches
expecting success of 3207.3 '--recurse-submodules should die if submodule.propagateBranches is false':
test_when_finished "reset_test" &&
(
cd super &&
echo "fatal: branch with --recurse-submodules can only be used if submodule.propagateBranches is enabled" >expected &&
test_must_fail git -c submodule.propagateBranches=false branch --recurse-submodules branch-a 2>actual &&
test_cmp expected actual
)
ok 3 - --recurse-submodules should die if submodule.propagateBranches is false
expecting success of 3207.4 '--recurse-submodules should fail when not creating branches':
test_when_finished "reset_test" &&
(
cd super &&
git branch --recurse-submodules branch-a &&
echo "fatal: --recurse-submodules can only be used to create branches" >expected &&
test_must_fail git branch --recurse-submodules -D branch-a 2>actual &&
test_cmp expected actual &&
# Assert that the branches were not deleted
git rev-parse branch-a &&
git -C sub rev-parse branch-a
)
submodule 'second/sub': creating branch 'branch-a'
submodule 'sub': creating branch 'branch-a'
submodule 'sub': submodule 'sub-sub': creating branch 'branch-a'
5b3305882bcfbd480c013914f081d14a697f2732
8b960934f7275300302f2aeb63cd672d510bf520
ok 4 - --recurse-submodules should fail when not creating branches
expecting success of 3207.5 'should respect submodule.recurse when creating branches':
test_when_finished "reset_test" &&
(
cd super &&
git -c submodule.recurse=true branch branch-a &&
git rev-parse branch-a &&
git -C sub rev-parse branch-a
)
submodule 'second/sub': creating branch 'branch-a'
submodule 'sub': creating branch 'branch-a'
submodule 'sub': submodule 'sub-sub': creating branch 'branch-a'
5b3305882bcfbd480c013914f081d14a697f2732
8b960934f7275300302f2aeb63cd672d510bf520
ok 5 - should respect submodule.recurse when creating branches
expecting success of 3207.6 'should ignore submodule.recurse when not creating branches':
test_when_finished "reset_test" &&
(
cd super &&
git branch --recurse-submodules branch-a &&
git -c submodule.recurse=true branch -D branch-a &&
test_no_branch . branch-a &&
git -C sub rev-parse branch-a
)
submodule 'second/sub': creating branch 'branch-a'
submodule 'sub': creating branch 'branch-a'
submodule 'sub': submodule 'sub-sub': creating branch 'branch-a'
Deleted branch branch-a (was 5b33058).
branch-a
fatal: ambiguous argument 'branch-a': unknown revision or path not in the working tree.
8b960934f7275300302f2aeb63cd672d510bf520
ok 6 - should ignore submodule.recurse when not creating branches
expecting success of 3207.7 'should create branches based off commit id in superproject':
test_when_finished "reset_test" &&
(
cd super &&
git branch --recurse-submodules branch-a &&
git checkout --recurse-submodules branch-a &&
git -C sub rev-parse HEAD >expected &&
# Move the tip of sub:branch-a so that it no longer matches the commit in super:branch-a
git -C sub checkout branch-a &&
test_commit -C sub bar &&
# Create a new branch-b branch with start-point=branch-a
git branch --recurse-submodules branch-b branch-a &&
git rev-parse branch-b &&
git -C sub rev-parse branch-b >actual &&
# Assert that the commit id of sub:second-branch matches super:branch-a and not sub:branch-a
test_cmp expected actual
)
submodule 'second/sub': creating branch 'branch-a'
submodule 'sub': creating branch 'branch-a'
submodule 'sub': submodule 'sub-sub': creating branch 'branch-a'
Switched to branch 'branch-a'
Switched to branch 'branch-a'
[branch-a c2b452d] bar
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 bar.t
submodule 'second/sub': creating branch 'branch-b'
submodule 'sub': creating branch 'branch-b'
submodule 'sub': submodule 'sub-sub': creating branch 'branch-b'
5b3305882bcfbd480c013914f081d14a697f2732
ok 7 - should create branches based off commit id in superproject
expecting success of 3207.8 'should not create any branches if branch is not valid for all repos':
test_when_finished "reset_test" &&
(
cd super &&
git -C sub branch branch-a &&
test_must_fail git branch --recurse-submodules branch-a 2>actual &&
test_no_branch . branch-a &&
grep "submodule .sub.: fatal: a branch named .branch-a. already exists" actual
)
branch-a
fatal: ambiguous argument 'branch-a': unknown revision or path not in the working tree.
submodule 'sub': fatal: a branch named 'branch-a' already exists
ok 8 - should not create any branches if branch is not valid for all repos
expecting success of 3207.9 'should create branches if branch exists and --force is given':
test_when_finished "reset_test" &&
(
cd super &&
git -C sub rev-parse HEAD >expected &&
test_commit -C sub baz &&
# branch-a in sub now points to a newer commit.
git -C sub branch branch-a HEAD &&
git -C sub rev-parse branch-a >actual-old-branch-a &&
git branch --recurse-submodules --force branch-a &&
git rev-parse branch-a &&
git -C sub rev-parse branch-a >actual-new-branch-a &&
test_cmp expected actual-new-branch-a &&
# assert that branch --force actually moved the sub
# branch
! test_cmp expected actual-old-branch-a
)
[main 17e69a3] baz
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 baz.t
submodule 'second/sub': creating branch 'branch-a'
submodule 'sub': creating branch 'branch-a'
submodule 'sub': submodule 'sub-sub': creating branch 'branch-a'
5b3305882bcfbd480c013914f081d14a697f2732
--- expected 2023-09-16 19:12:43.656800053 +0000
+++ actual-old-branch-a 2023-09-16 19:12:43.720800831 +0000
@@ -1 +1 @@
-8b960934f7275300302f2aeb63cd672d510bf520
+17e69a320b6ee5ba7924e448209118bcd0c199ab
ok 9 - should create branches if branch exists and --force is given
expecting success of 3207.10 'should create branch when submodule is not in HEAD:.gitmodules':
test_when_finished "reset_test" &&
(
cd super &&
git branch branch-a &&
git checkout -b branch-b &&
git submodule add ../sub-upstream sub2 &&
git -C sub2 submodule update --init &&
# branch-b now has a committed submodule not in branch-a
git commit -m "add second submodule" &&
git checkout branch-a &&
git branch --recurse-submodules branch-c branch-b &&
git checkout --recurse-submodules branch-c &&
git -C sub2 rev-parse branch-c &&
git -C sub2/sub-sub rev-parse branch-c
)
Switched to a new branch 'branch-b'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/super/sub2'...
done.
Submodule 'sub-sub' (/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/sub-sub-upstream) registered for path 'sub-sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/super/sub2/sub-sub'...
done.
Submodule path 'sub-sub': checked out '946e985ab20de757ca5b872b16d64e92ff3803a9'
[branch-b 0a9387b] add second submodule
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 160000 sub2
warning: unable to rmdir 'sub2': Directory not empty
Switched to branch 'branch-a'
submodule 'second/sub': creating branch 'branch-c'
submodule 'sub': creating branch 'branch-c'
submodule 'sub': submodule 'sub-sub': creating branch 'branch-c'
submodule 'sub2': creating branch 'branch-c'
submodule 'sub2': submodule 'sub-sub': creating branch 'branch-c'
Switched to branch 'branch-c'
8b960934f7275300302f2aeb63cd672d510bf520
946e985ab20de757ca5b872b16d64e92ff3803a9
ok 10 - should create branch when submodule is not in HEAD:.gitmodules
expecting success of 3207.11 'should not create branches in inactive submodules':
test_when_finished "reset_test" &&
test_config -C super submodule.sub.active false &&
(
cd super &&
git branch --recurse-submodules branch-a &&
git rev-parse branch-a &&
test_no_branch sub branch-a
)
submodule 'second/sub': creating branch 'branch-a'
5b3305882bcfbd480c013914f081d14a697f2732
branch-a
fatal: ambiguous argument 'branch-a': unknown revision or path not in the working tree.
ok 11 - should not create branches in inactive submodules
expecting success of 3207.12 'should set up tracking of local branches with track=always':
test_when_finished "reset_test" &&
(
cd super &&
git -c branch.autoSetupMerge=always branch --recurse-submodules branch-a main &&
git -C sub rev-parse main &&
test_cmp_config -C sub . branch.branch-a.remote &&
test_cmp_config -C sub refs/heads/main branch.branch-a.merge
)
branch 'branch-a' set up to track 'main'.
submodule 'second/sub': creating branch 'branch-a'
submodule 'second/sub': branch 'branch-a' set up to track 'main'.
submodule 'sub': creating branch 'branch-a'
submodule 'sub': branch 'branch-a' set up to track 'main'.
submodule 'sub': submodule 'sub-sub': creating branch 'branch-a'
submodule 'sub': submodule 'sub-sub': branch 'branch-a' set up to track 'main'.
8b960934f7275300302f2aeb63cd672d510bf520
ok 12 - should set up tracking of local branches with track=always
expecting success of 3207.13 'should set up tracking of local branches with explicit track':
test_when_finished "reset_test" &&
(
cd super &&
git branch --track --recurse-submodules branch-a main &&
git -C sub rev-parse main &&
test_cmp_config -C sub . branch.branch-a.remote &&
test_cmp_config -C sub refs/heads/main branch.branch-a.merge
)
branch 'branch-a' set up to track 'main'.
submodule 'second/sub': creating branch 'branch-a'
submodule 'second/sub': branch 'branch-a' set up to track 'main'.
submodule 'sub': creating branch 'branch-a'
submodule 'sub': branch 'branch-a' set up to track 'main'.
submodule 'sub': submodule 'sub-sub': creating branch 'branch-a'
submodule 'sub': submodule 'sub-sub': branch 'branch-a' set up to track 'main'.
8b960934f7275300302f2aeb63cd672d510bf520
ok 13 - should set up tracking of local branches with explicit track
expecting success of 3207.14 'should not set up unnecessary tracking of local branches':
test_when_finished "reset_test" &&
(
cd super &&
git branch --recurse-submodules branch-a main &&
git -C sub rev-parse main &&
test_cmp_config -C sub "" --default "" branch.branch-a.remote &&
test_cmp_config -C sub "" --default "" branch.branch-a.merge
)
submodule 'second/sub': creating branch 'branch-a'
submodule 'sub': creating branch 'branch-a'
submodule 'sub': submodule 'sub-sub': creating branch 'branch-a'
8b960934f7275300302f2aeb63cd672d510bf520
ok 14 - should not set up unnecessary tracking of local branches
expecting success of 3207.15 'setup tests with remotes':
(
cd test_dirs &&
(
cd super &&
git branch branch-a &&
git checkout -b branch-b &&
git submodule add ../sub-upstream sub2 &&
# branch-b now has a committed submodule not in branch-a
git commit -m "add second submodule"
) &&
git clone --branch main --recurse-submodules super super-clone &&
git -C super-clone config submodule.propagateBranches true
) &&
reset_remote_test
Switched to a new branch 'branch-b'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/super/sub2'...
done.
[branch-b 0a9387b] add second submodule
Author: A U Thor <author@example.com>
2 files changed, 4 insertions(+)
create mode 160000 sub2
Cloning into 'super-clone'...
done.
Submodule 'second/sub' (/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/sub-sub-upstream) registered for path 'second/sub'
Submodule 'sub' (/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/sub-upstream) registered for path 'sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/super-clone/second/sub'...
done.
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/super-clone/sub'...
done.
Submodule path 'second/sub': checked out '946e985ab20de757ca5b872b16d64e92ff3803a9'
Submodule path 'sub': checked out '8b960934f7275300302f2aeb63cd672d510bf520'
Submodule 'sub-sub' (/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/sub-sub-upstream) registered for path 'sub/sub-sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/super-clone/sub/sub-sub'...
done.
Submodule path 'sub/sub-sub': checked out '946e985ab20de757ca5b872b16d64e92ff3803a9'
ok 15 - setup tests with remotes
expecting success of 3207.16 'should get fatal error upon branch creation when submodule is not in .git/modules':
test_when_finished "reset_remote_test" &&
(
cd super-clone &&
# This should succeed because super-clone has sub in .git/modules
git branch --recurse-submodules branch-a origin/branch-a &&
# This should fail because super-clone does not have sub2 .git/modules
test_must_fail git branch --recurse-submodules branch-b origin/branch-b 2>actual &&
grep "fatal: submodule .sub2.: unable to find submodule" actual &&
test_no_branch . branch-b &&
test_no_branch sub branch-b &&
# User can fix themselves by initializing the submodule
git checkout origin/branch-b &&
git submodule update --init --recursive &&
git branch --recurse-submodules branch-b origin/branch-b
)
branch 'branch-a' set up to track 'origin/branch-a'.
submodule 'second/sub': creating branch 'branch-a'
submodule 'second/sub': branch 'branch-a' set up to track 'origin/branch-a'.
submodule 'sub': creating branch 'branch-a'
submodule 'sub': branch 'branch-a' set up to track 'origin/branch-a'.
submodule 'sub': submodule 'sub-sub': creating branch 'branch-a'
submodule 'sub': submodule 'sub-sub': branch 'branch-a' set up to track 'origin/branch-a'.
fatal: submodule 'sub2': unable to find submodule
branch-b
fatal: ambiguous argument 'branch-b': unknown revision or path not in the working tree.
branch-b
fatal: ambiguous argument 'branch-b': unknown revision or path not in the working tree.
Note: switching to 'origin/branch-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.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 0a9387b add second submodule
Submodule 'sub2' (/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/sub-upstream) registered for path 'sub2'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/super-clone/sub2'...
done.
Submodule path 'sub2': checked out '8b960934f7275300302f2aeb63cd672d510bf520'
Submodule 'sub-sub' (/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/test_dirs/sub-sub-upstream) registered for path 'sub2/sub-sub'
Cloning into '/<<PKGBUILDDIR>>/t/trash directory.t3207-branch-submodule/super-clone/sub2/sub-sub'...
done.
Submodule path 'sub2/sub-sub': checked out '946e985ab20de757ca5b872b16d64e92ff3803a9'
branch 'branch-b' set up to track 'origin/branch-b'.
submodule 'second/sub': creating branch 'branch-b'
submodule 'second/sub': branch 'branch-b' set up to track 'origin/branch-b'.
submodule 'sub': creating branch 'branch-b'
submodule 'sub': branch 'branch-b' set up to track 'origin/branch-b'.
submodule 'sub': submodule 'sub-sub': creating branch 'branch-b'
submodule 'sub': submodule 'sub-sub': branch 'branch-b' set up to track 'origin/branch-b'.
submodule 'sub2': creating branch 'branch-b'
submodule 'sub2': branch 'branch-b' set up to track 'origin/branch-b'.
submodule 'sub2': submodule 'sub-sub': creating branch 'branch-b'
submodule 'sub2': submodule 'sub-sub': branch 'branch-b' set up to track 'origin/branch-b'.
ok 16 - should get fatal error upon branch creation when submodule is not in .git/modules
expecting success of 3207.17 'should set up tracking of remote-tracking branches by default':
test_when_finished "reset_remote_test" &&
(
cd super-clone &&
git branch --recurse-submodules branch-a origin/branch-a &&
test_cmp_config origin branch.branch-a.remote &&
test_cmp_config refs/heads/branch-a branch.branch-a.merge &&
# "origin/branch-a" does not exist for "sub", but it matches the refspec
# so tracking should be set up
test_cmp_config -C sub origin branch.branch-a.remote &&
test_cmp_config -C sub refs/heads/branch-a branch.branch-a.merge &&
test_cmp_config -C sub/sub-sub origin branch.branch-a.remote &&
test_cmp_config -C sub/sub-sub refs/heads/branch-a branch.branch-a.merge
)
branch 'branch-a' set up to track 'origin/branch-a'.
submodule 'second/sub': creating branch 'branch-a'
submodule 'second/sub': branch 'branch-a' set up to track 'origin/branch-a'.
submodule 'sub': creating branch 'branch-a'
submodule 'sub': branch 'branch-a' set up to track 'origin/branch-a'.
submodule 'sub': submodule 'sub-sub': creating branch 'branch-a'
submodule 'sub': submodule 'sub-sub': branch 'branch-a' set up to track 'origin/branch-a'.
ok 17 - should set up tracking of remote-tracking branches by default
expecting success of 3207.18 'should not fail when unable to set up tracking in submodule':
test_when_finished "reset_remote_test" &&
(
cd super-clone &&
git remote rename origin ex-origin &&
git branch --recurse-submodules branch-a ex-origin/branch-a &&
test_cmp_config ex-origin branch.branch-a.remote &&
test_cmp_config refs/heads/branch-a branch.branch-a.merge &&
test_cmp_config -C sub "" --default "" branch.branch-a.remote &&
test_cmp_config -C sub "" --default "" branch.branch-a.merge
)
branch 'branch-a' set up to track 'ex-origin/branch-a'.
submodule 'second/sub': creating branch 'branch-a'
submodule 'sub': creating branch 'branch-a'
submodule 'sub': submodule 'sub-sub': creating branch 'branch-a'
ok 18 - should not fail when unable to set up tracking in submodule
expecting success of 3207.19 '--track=inherit should set up tracking correctly':
test_when_finished "reset_remote_test" &&
(
cd super-clone &&
git branch --recurse-submodules branch-a origin/branch-a &&
# Set this manually instead of using branch --set-upstream-to
# to circumvent the "nonexistent upstream" check.
git -C sub config branch.branch-a.remote origin &&
git -C sub config branch.branch-a.merge refs/heads/sub-branch-a &&
git -C sub/sub-sub config branch.branch-a.remote other &&
git -C sub/sub-sub config branch.branch-a.merge refs/heads/sub-sub-branch-a &&
git branch --recurse-submodules --track=inherit branch-b branch-a &&
test_cmp_config origin branch.branch-b.remote &&
test_cmp_config refs/heads/branch-a branch.branch-b.merge &&
test_cmp_config -C sub origin branch.branch-b.remote &&
test_cmp_config -C sub refs/heads/sub-branch-a branch.branch-b.merge &&
test_cmp_config -C sub/sub-sub other branch.branch-b.remote &&
test_cmp_config -C sub/sub-sub refs/heads/sub-sub-branch-a branch.branch-b.merge
)
branch 'branch-a' set up to track 'origin/branch-a'.
submodule 'second/sub': creating branch 'branch-a'
submodule 'second/sub': branch 'branch-a' set up to track 'origin/branch-a'.
submodule 'sub': creating branch 'branch-a'
submodule 'sub': branch 'branch-a' set up to track 'origin/branch-a'.
submodule 'sub': submodule 'sub-sub': creating branch 'branch-a'
submodule 'sub': submodule 'sub-sub': branch 'branch-a' set up to track 'origin/branch-a'.
branch 'branch-b' set up to track 'origin/branch-a'.
submodule 'second/sub': creating branch 'branch-b'
submodule 'second/sub': branch 'branch-b' set up to track 'origin/branch-a'.
submodule 'sub': creating branch 'branch-b'
submodule 'sub': branch 'branch-b' set up to track 'origin/sub-branch-a'.
submodule 'sub': submodule 'sub-sub': creating branch 'branch-b'
submodule 'sub': submodule 'sub-sub': branch 'branch-b' set up to track 'other/sub-sub-branch-a'.
ok 19 - --track=inherit should set up tracking correctly
expecting success of 3207.20 '--no-track should not set up tracking':
test_when_finished "reset_remote_test" &&
(
cd super-clone &&
git branch --recurse-submodules --no-track branch-a origin/branch-a &&
test_cmp_config "" --default "" branch.branch-a.remote &&
test_cmp_config "" --default "" branch.branch-a.merge &&
test_cmp_config -C sub "" --default "" branch.branch-a.remote &&
test_cmp_config -C sub "" --default "" branch.branch-a.merge &&
test_cmp_config -C sub/sub-sub "" --default "" branch.branch-a.remote &&
test_cmp_config -C sub/sub-sub "" --default "" branch.branch-a.merge
)
submodule 'second/sub': creating branch 'branch-a'
submodule 'sub': creating branch 'branch-a'
submodule 'sub': submodule 'sub-sub': creating branch 'branch-a'
ok 20 - --no-track should not set up tracking
# passed all 20 test(s)
1..20
make[4]: Leaving directory '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3304-notes-mixed.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/t/trash directory.t3304-notes-mixed/.git/
expecting success of 3304.1 'setup: create a couple of commits':
test_tick &&
cat <<INPUT_END >input &&
commit refs/heads/main
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
data <<COMMIT
commit #1
COMMIT
M 644 inline file
data <<EOF
file in commit #1
EOF
INPUT_END
test_tick &&
cat <<INPUT_END >>input &&
commit refs/heads/main
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
data <<COMMIT
commit #2
COMMIT
M 644 inline file
data <<EOF
file in commit #2
EOF
INPUT_END
git fast-import --quiet <input
ok 1 - setup: create a couple of commits
expecting success of 3304.2 'create a notes tree with both notes and non-notes':
commit1=$(git rev-parse refs/heads/main^) &&
commit2=$(git rev-parse refs/heads/main) &&
test_tick &&
cat <<INPUT_END >input &&
commit refs/notes/commits
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
data <<COMMIT
notes commit #1
COMMIT
N inline $commit1
data <<EOF
note for commit #1
EOF
N inline $commit2
data <<EOF
note for commit #2
EOF
INPUT_END
test_tick &&
cat <<INPUT_END >>input &&
commit refs/notes/commits
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
data <<COMMIT
notes commit #2
COMMIT
M 644 inline foobar/non-note.txt
data <<EOF
A non-note in a notes tree
EOF
N inline $commit2
data <<EOF
edited note for commit #2
EOF
INPUT_END
test_tick &&
cat <<INPUT_END >>input &&
commit refs/notes/commits
committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
data <<COMMIT
notes commit #3
COMMIT
N inline $commit1
data <<EOF
edited note for commit #1
EOF
M 644 inline deadbeef
data <<EOF
non-note with SHA1-like name
EOF
M 644 inline de/adbeef
data <<EOF
another non-note with SHA1-like name
EOF
M 644 inline de/adbeefdeadbeefdeadbeefdeadbeefdeadbeef
data <<EOF
This is actually a valid note, albeit to a non-existing object.
It is needed in order to trigger the "mishandling" of the dead/beef non-note.
EOF
M 644 inline dead/beef
data <<EOF
yet another non-note with SHA1-like name
EOF
INPUT_END
git fast-import --quiet <input &&
git config core.notesRef refs/notes/commits
ok 2 - create a notes tree with both notes and non-notes
expecting success of 3304.3 'verify contents of notes':
git log | grep "^ " > 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 '/<<PKGBUILDDIR>>/t'
make[4]: Entering directory '/<<PKGBUILDDIR>>/t'
*** t3301-notes.sh ***
Initialized empty Git repository in /<<PKGBUILDDIR>>/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 <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 1st.t
[master 7a4ca6e] 2nd
Author: A U Thor <author@example.com>
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 <author@example.com>
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^
b3
commit 04ed9a0bbe0285f41c913e2002cb09ef8449d4a6
Author: A U Thor <author@example.com>
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 11 - edit existing notes
expecting success of 3301.12 'show notes from treeish':
echo b3 >expect &&
git notes --ref commits^{tree} show >actual &&
test_cmp expect actual &&
echo b4 >expect &&
git notes --ref commits@{1} show >actual &&
test_cmp expect actual
ok 12 - show notes from treeish
expecting success of 3301.13 'cannot edit notes from non-ref':
test_must_fail git notes --ref commits^{tree} edit &&
test_must_fail git notes --ref commits@{1} edit
fatal: Cannot use notes ref refs/notes/commits^{tree}
fatal: Cannot use notes ref refs/notes/commits@{1}
ok 13 - cannot edit notes from non-ref
expecting success of 3301.14 'cannot "git notes add -m" where notes already exists':
test_must_fail git notes add -m "b2" &&
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^
error: Cannot add notes. Found existing notes for object 7a4ca6ee52a974a66cbaa78e33214535dff1d691. Use '-f' to overwrite existing notes
commit 04ed9a0bbe0285f41c913e2002cb09ef8449d4a6
Author: A U Thor <author@example.com>
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 14 - cannot "git notes add -m" where notes already exists
expecting success of 3301.15 'can overwrite existing note with "git notes add -f -m"':
git notes add -f -m "b1" &&
test_path_is_missing .git/NOTES_EDITMSG &&
git ls-tree -r refs/notes/commits >actual &&
test_line_count = 1 actual &&
echo b1 >expect &&
git notes show >actual &&
test_cmp expect actual &&
git show HEAD^ &&
test_must_fail git notes show HEAD^
Overwriting existing notes for object 7a4ca6ee52a974a66cbaa78e33214535dff1d691
commit 04ed9a0bbe0285f41c913e2002cb09ef8449d4a6
Author: A U Thor <author@example.com>
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 15 - can overwrite existing note with "git notes add -f -m"
expecting success of 3301.16 'add w/no options on existing note morphs into edit':
MSG=b2 git notes add &&
test_path_is_missing .git/NOTES_EDITMSG &&
git ls-tree -r refs/notes/commits >actual &&
test_line_count = 1 actual &&
echo b2 >expect &&
git notes show >actual &&
test_cmp expect actual &&
git show HEAD^ &&
test_must_fail git notes show HEAD^
b2
commit 04ed9a0bbe0285f41c913e2002cb09ef8449d4a6
Author: A U Thor <author@example.com>
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 16 - add w/no options on existing note morphs into edit
expecting success of 3301.17 'can overwrite existing note with "git notes add -f"':
MSG=b1 git notes add -f &&
test_path_is_missing .git/NOTES_EDITMSG &&
git ls-tree -r refs/notes/commits >actual &&
test_line_count = 1 actual &&
echo b1 >expect &&
git notes show >actual &&
test_cmp expect actual &&
git show HEAD^ &&
test_must_fail git notes show HEAD^
Overwriting existing notes for object 7a4ca6ee52a974a66cbaa78e33214535dff1d691
b1
commit 04ed9a0bbe0285f41c913e2002cb09ef8449d4a6
Author: A U Thor <author@example.com>
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 17 - can overwrite existing note with "git notes add -f"
expecting success of 3301.18 'show notes':
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
${indent}2nd
Notes:
${indent}b1
EOF
git cat-file commit HEAD >commits &&
! grep b1 commits &&
git log -1 >actual &&
test_cmp expect actual
ok 18 - show notes
expecting success of 3301.19 'show multi-line notes':
test_commit 3rd &&
MSG="b3${LF}c3c3c3c3${LF}d3d3d3" git notes add &&
commit=$(git rev-parse HEAD) &&
cat >expect-multiline <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:15:13 2005 -0700
${indent}3rd
Notes:
${indent}b3
${indent}c3c3c3c3
${indent}d3d3d3
EOF
cat expect >>expect-multiline &&
git log -2 >actual &&
test_cmp expect-multiline actual
[master d07d62e] 3rd
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 3rd.t
b3
c3c3c3c3
d3d3d3
ok 19 - show multi-line notes
expecting success of 3301.20 'show -F notes':
test_commit 4th &&
echo "xyzzy" >note5 &&
git notes add -F note5 &&
commit=$(git rev-parse HEAD) &&
cat >expect-F <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
${indent}4th
Notes:
${indent}xyzzy
EOF
cat expect-multiline >>expect-F &&
git log -3 >actual &&
test_cmp expect-F actual
[master 0f7aa3e] 4th
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 4th.t
ok 20 - show -F notes
expecting success of 3301.21 'Re-adding -F notes without -f fails':
echo "zyxxy" >note5 &&
test_must_fail git notes add -F note5 &&
git log -3 >actual &&
test_cmp expect-F actual
error: Cannot add notes. Found existing notes for object 0f7aa3ec6325aeb88b910453bb3eb37c49d75c11. Use '-f' to overwrite existing notes
ok 21 - Re-adding -F notes without -f fails
expecting success of 3301.22 'git log --pretty=raw does not show notes':
commit=$(git rev-parse HEAD) &&
tree=$(git rev-parse HEAD^{tree}) &&
parent=$(git rev-parse HEAD^) &&
cat >expect <<-EOF &&
commit $commit
tree $tree
parent $parent
author A U Thor <author@example.com> 1112912173 -0700
committer C O Mitter <committer@example.com> 1112912173 -0700
${indent}4th
EOF
git log -1 --pretty=raw >actual &&
test_cmp expect actual
ok 22 - git log --pretty=raw does not show notes
expecting success of 3301.23 'git log --show-notes':
cat >>expect <<-EOF &&
Notes:
${indent}xyzzy
EOF
git log -1 --pretty=raw --show-notes >actual &&
test_cmp expect actual
ok 23 - git log --show-notes
expecting success of 3301.24 'git log --no-notes':
git log -1 --no-notes >actual &&
! grep xyzzy actual
ok 24 - git log --no-notes
expecting success of 3301.25 'git format-patch does not show notes':
git format-patch -1 --stdout >actual &&
! grep xyzzy actual
ok 25 - git format-patch does not show notes
expecting success of 3301.26 'git format-patch --show-notes does show notes':
git format-patch --show-notes -1 --stdout >actual &&
grep xyzzy actual
xyzzy
ok 26 - git format-patch --show-notes does show notes
expecting success of 3301.27 'git show does show notes':
git show $p >actual &&
eval "$negate grep xyzzy actual"
xyzzy
ok 27 - git show does show notes
expecting success of 3301.28 'git show --pretty does not show notes':
git show $p >actual &&
eval "$negate grep xyzzy actual"
ok 28 - git show --pretty does not show notes
expecting success of 3301.29 'git show --pretty=raw does not show notes':
git show $p >actual &&
eval "$negate grep xyzzy actual"
ok 29 - git show --pretty=raw does not show notes
expecting success of 3301.30 'git show --pretty=short does not show notes':
git show $p >actual &&
eval "$negate grep xyzzy actual"
ok 30 - git show --pretty=short does not show notes
expecting success of 3301.31 'git show --pretty=medium does not show notes':
git show $p >actual &&
eval "$negate grep xyzzy actual"
ok 31 - git show --pretty=medium does not show notes
expecting success of 3301.32 'git show --pretty=full does not show notes':
git show $p >actual &&
eval "$negate grep xyzzy actual"
ok 32 - git show --pretty=full does not show notes
expecting success of 3301.33 'git show --pretty=fuller does not show notes':
git show $p >actual &&
eval "$negate grep xyzzy actual"
ok 33 - git show --pretty=fuller does not show notes
expecting success of 3301.34 'git show --pretty=format:%s does not show notes':
git show $p >actual &&
eval "$negate grep xyzzy actual"
ok 34 - git show --pretty=format:%s does not show notes
expecting success of 3301.35 'git show --oneline does not show notes':
git show $p >actual &&
eval "$negate grep xyzzy actual"
ok 35 - git show --oneline does not show notes
expecting success of 3301.36 'setup alternate notes ref':
git notes --ref=alternate add -m alternate
ok 36 - setup alternate notes ref
expecting success of 3301.37 'git log --notes shows default notes':
git log -1 --notes >actual &&
grep xyzzy actual &&
! grep alternate actual
xyzzy
ok 37 - git log --notes shows default notes
expecting success of 3301.38 'git log --notes=X shows only X':
git log -1 --notes=alternate >actual &&
! grep xyzzy actual &&
grep alternate actual
Notes (alternate):
alternate
ok 38 - git log --notes=X shows only X
expecting success of 3301.39 'git log --notes --notes=X shows both':
git log -1 --notes --notes=alternate >actual &&
grep xyzzy actual &&
grep alternate actual
xyzzy
Notes (alternate):
alternate
ok 39 - git log --notes --notes=X shows both
expecting success of 3301.40 'git log --no-notes resets default state':
git log -1 --notes --notes=alternate \
--no-notes --notes=alternate \
>actual &&
! grep xyzzy actual &&
grep alternate actual
Notes (alternate):
alternate
ok 40 - git log --no-notes resets default state
expecting success of 3301.41 'git log --no-notes resets ref list':
git log -1 --notes --notes=alternate \
--no-notes --notes \
>actual &&
grep xyzzy actual &&
! grep alternate actual
xyzzy
ok 41 - git log --no-notes resets ref list
expecting success of 3301.42 'show -m notes':
test_commit 5th &&
git notes add -m spam -m "foo${LF}bar${LF}baz" &&
commit=$(git rev-parse HEAD) &&
cat >expect-m <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
${indent}5th
Notes:
${indent}spam
${indent}
${indent}foo
${indent}bar
${indent}baz
EOF
cat expect-F >>expect-m &&
git log -4 >actual &&
test_cmp expect-m actual
[master 7f9ad88] 5th
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 5th.t
ok 42 - show -m notes
expecting success of 3301.43 'remove note with add -f -F /dev/null':
git notes add -f -F /dev/null &&
commit=$(git rev-parse HEAD) &&
cat >expect-rm-F <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
${indent}5th
EOF
cat expect-F >>expect-rm-F &&
git log -4 >actual &&
test_cmp expect-rm-F actual &&
test_must_fail git notes show
Overwriting existing notes for object 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
Removing note for object 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
error: no note found for object 7f9ad8836c775acb134c0a055fc55fb4cd1ba361.
ok 43 - remove note with add -f -F /dev/null
expecting success of 3301.44 'do not create empty note with -m ""':
git notes add -m "" &&
git log -4 >actual &&
test_cmp expect-rm-F actual &&
test_must_fail git notes show
Removing note for object 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
error: no note found for object 7f9ad8836c775acb134c0a055fc55fb4cd1ba361.
ok 44 - do not create empty note with -m ""
expecting success of 3301.45 'create note with combination of -m and -F':
cat >expect-combine_m_and_F <<-EOF &&
foo
xyzzy
bar
zyxxy
baz
EOF
echo "xyzzy" >note_a &&
echo "zyxxy" >note_b &&
git notes add -m "foo" -F note_a -m "bar" -F note_b -m "baz" &&
git notes show >actual &&
test_cmp expect-combine_m_and_F actual
ok 45 - create note with combination of -m and -F
expecting success of 3301.46 'remove note with "git notes remove"':
git notes remove HEAD^ &&
git notes remove &&
commit=$(git rev-parse HEAD) &&
parent=$(git rev-parse HEAD^) &&
cat >expect-rm-remove <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
${indent}5th
commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
${indent}4th
EOF
cat expect-multiline >>expect-rm-remove &&
git log -4 >actual &&
test_cmp expect-rm-remove actual &&
test_must_fail git notes show HEAD^
Removing note for object HEAD^
Removing note for object HEAD
error: no note found for object 0f7aa3ec6325aeb88b910453bb3eb37c49d75c11.
ok 46 - remove note with "git notes remove"
expecting success of 3301.47 'removing non-existing note should not create new commit':
git rev-parse --verify refs/notes/commits >before_commit &&
test_must_fail git notes remove HEAD^ &&
git rev-parse --verify refs/notes/commits >after_commit &&
test_cmp before_commit after_commit
Object HEAD^ has no note
ok 47 - removing non-existing note should not create new commit
expecting success of 3301.48 'removing more than one':
before=$(git rev-parse --verify refs/notes/commits) &&
test_when_finished "git update-ref refs/notes/commits $before" &&
# We have only two -- add another and make sure it stays
git notes add -m "extra" &&
git notes list HEAD >after-removal-expect &&
git notes remove HEAD^^ HEAD^^^ &&
git notes list | sed -e "s/ .*//" >actual &&
test_cmp after-removal-expect actual
Removing note for object HEAD^^
Removing note for object HEAD^^^
ok 48 - removing more than one
expecting success of 3301.49 'removing is atomic':
before=$(git rev-parse --verify refs/notes/commits) &&
test_when_finished "git update-ref refs/notes/commits $before" &&
test_must_fail git notes remove HEAD^^ HEAD^^^ HEAD^ &&
after=$(git rev-parse --verify refs/notes/commits) &&
test "$before" = "$after"
Removing note for object HEAD^^
Removing note for object HEAD^^^
Object HEAD^ has no note
ok 49 - removing is atomic
expecting success of 3301.50 'removing with --ignore-missing':
before=$(git rev-parse --verify refs/notes/commits) &&
test_when_finished "git update-ref refs/notes/commits $before" &&
# We have only two -- add another and make sure it stays
git notes add -m "extra" &&
git notes list HEAD >after-removal-expect &&
git notes remove --ignore-missing HEAD^^ HEAD^^^ HEAD^ &&
git notes list | sed -e "s/ .*//" >actual &&
test_cmp after-removal-expect actual
Removing note for object HEAD^^
Removing note for object HEAD^^^
Object HEAD^ has no note
ok 50 - removing with --ignore-missing
expecting success of 3301.51 'removing with --ignore-missing but bogus ref':
before=$(git rev-parse --verify refs/notes/commits) &&
test_when_finished "git update-ref refs/notes/commits $before" &&
test_must_fail git notes remove --ignore-missing HEAD^^ HEAD^^^ NO-SUCH-COMMIT &&
after=$(git rev-parse --verify refs/notes/commits) &&
test "$before" = "$after"
Removing note for object HEAD^^
Removing note for object HEAD^^^
error: Failed to resolve 'NO-SUCH-COMMIT' as a valid ref.
ok 51 - removing with --ignore-missing but bogus ref
expecting success of 3301.52 'remove reads from --stdin':
before=$(git rev-parse --verify refs/notes/commits) &&
test_when_finished "git update-ref refs/notes/commits $before" &&
# We have only two -- add another and make sure it stays
git notes add -m "extra" &&
git notes list HEAD >after-removal-expect &&
git rev-parse HEAD^^ HEAD^^^ >input &&
git notes remove --stdin <input &&
git notes list | sed -e "s/ .*//" >actual &&
test_cmp after-removal-expect actual
Removing note for object d07d62e5208f22eb5695e7eb47667dc8b9860290
Removing note for object 7a4ca6ee52a974a66cbaa78e33214535dff1d691
ok 52 - remove reads from --stdin
expecting success of 3301.53 'remove --stdin is also atomic':
before=$(git rev-parse --verify refs/notes/commits) &&
test_when_finished "git update-ref refs/notes/commits $before" &&
git rev-parse HEAD^^ HEAD^^^ HEAD^ >input &&
test_must_fail git notes remove --stdin <input &&
after=$(git rev-parse --verify refs/notes/commits) &&
test "$before" = "$after"
Removing note for object d07d62e5208f22eb5695e7eb47667dc8b9860290
Removing note for object 7a4ca6ee52a974a66cbaa78e33214535dff1d691
Object 0f7aa3ec6325aeb88b910453bb3eb37c49d75c11 has no note
ok 53 - remove --stdin is also atomic
expecting success of 3301.54 'removing with --stdin --ignore-missing':
before=$(git rev-parse --verify refs/notes/commits) &&
test_when_finished "git update-ref refs/notes/commits $before" &&
# We have only two -- add another and make sure it stays
git notes add -m "extra" &&
git notes list HEAD >after-removal-expect &&
git rev-parse HEAD^^ HEAD^^^ HEAD^ >input &&
git notes remove --ignore-missing --stdin <input &&
git notes list | sed -e "s/ .*//" >actual &&
test_cmp after-removal-expect actual
Removing note for object d07d62e5208f22eb5695e7eb47667dc8b9860290
Removing note for object 7a4ca6ee52a974a66cbaa78e33214535dff1d691
Object 0f7aa3ec6325aeb88b910453bb3eb37c49d75c11 has no note
ok 54 - removing with --stdin --ignore-missing
expecting success of 3301.55 'list notes with "git notes list"':
commit_2=$(git rev-parse 2nd) &&
commit_3=$(git rev-parse 3rd) &&
note_2=$(git rev-parse refs/notes/commits:$commit_2) &&
note_3=$(git rev-parse refs/notes/commits:$commit_3) &&
sort -t" " -k2 >expect <<-EOF &&
$note_2 $commit_2
$note_3 $commit_3
EOF
git notes list >actual &&
test_cmp expect actual
ok 55 - list notes with "git notes list"
expecting success of 3301.56 'list notes with "git notes"':
git notes >actual &&
test_cmp expect actual
ok 56 - list notes with "git notes"
expecting success of 3301.57 '"git notes" without subcommand does not take arguments':
test_expect_code 129 git notes HEAD^^ 2>err &&
grep "^error: unknown subcommand" err
error: unknown subcommand: `HEAD^^'
ok 57 - "git notes" without subcommand does not take arguments
expecting success of 3301.58 'list specific note with "git notes list <object>"':
git rev-parse refs/notes/commits:$commit_3 >expect &&
git notes list HEAD^^ >actual &&
test_cmp expect actual
ok 58 - list specific note with "git notes list <object>"
expecting success of 3301.59 'listing non-existing notes fails':
test_must_fail git notes list HEAD >actual &&
test_must_be_empty actual
error: no note found for object 7f9ad8836c775acb134c0a055fc55fb4cd1ba361.
ok 59 - listing non-existing notes fails
expecting success of 3301.60 'append to existing note with "git notes append"':
cat >expect <<-EOF &&
Initial set of notes
More notes appended with git notes append
EOF
git notes add -m "Initial set of notes" &&
git notes append -m "More notes appended with git notes append" &&
git notes show >actual &&
test_cmp expect actual
ok 60 - append to existing note with "git notes append"
expecting success of 3301.61 '"git notes list" does not expand to "git notes list HEAD"':
commit_5=$(git rev-parse 5th) &&
note_5=$(git rev-parse refs/notes/commits:$commit_5) &&
sort -t" " -k2 >expect_list <<-EOF &&
$note_2 $commit_2
$note_3 $commit_3
$note_5 $commit_5
EOF
git notes list >actual &&
test_cmp expect_list actual
ok 61 - "git notes list" does not expand to "git notes list HEAD"
expecting success of 3301.62 'appending empty string does not change existing note':
git notes append -m "" &&
git notes show >actual &&
test_cmp expect actual
ok 62 - appending empty string does not change existing note
expecting success of 3301.63 'git notes append == add when there is no existing note':
git notes remove HEAD &&
test_must_fail git notes list HEAD &&
git notes append -m "Initial set of notes${LF}${LF}More notes appended with git notes append" &&
git notes show >actual &&
test_cmp expect actual
Removing note for object HEAD
error: no note found for object 7f9ad8836c775acb134c0a055fc55fb4cd1ba361.
ok 63 - git notes append == add when there is no existing note
expecting success of 3301.64 'appending empty string to non-existing note does not create note':
git notes remove HEAD &&
test_must_fail git notes list HEAD &&
git notes append -m "" &&
test_must_fail git notes list HEAD
Removing note for object HEAD
error: no note found for object 7f9ad8836c775acb134c0a055fc55fb4cd1ba361.
Removing note for object 7f9ad8836c775acb134c0a055fc55fb4cd1ba361
error: no note found for object 7f9ad8836c775acb134c0a055fc55fb4cd1ba361.
ok 64 - appending empty string to non-existing note does not create note
expecting success of 3301.65 'create other note on a different notes ref (setup)':
test_commit 6th &&
GIT_NOTES_REF="refs/notes/other" git notes add -m "other note" &&
commit=$(git rev-parse HEAD) &&
cat >expect-not-other <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
${indent}6th
EOF
cp expect-not-other expect-other &&
cat >>expect-other <<-EOF
Notes (other):
${indent}other note
EOF
[master 2c12533] 6th
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 6th.t
ok 65 - create other note on a different notes ref (setup)
expecting success of 3301.66 'Do not show note on other ref by default':
git log -1 >actual &&
test_cmp expect-not-other actual
ok 66 - Do not show note on other ref by default
expecting success of 3301.67 'Do show note when ref is given in GIT_NOTES_REF':
GIT_NOTES_REF="refs/notes/other" git log -1 >actual &&
test_cmp expect-other actual
ok 67 - Do show note when ref is given in GIT_NOTES_REF
expecting success of 3301.68 'Do show note when ref is given in core.notesRef config':
test_config core.notesRef "refs/notes/other" &&
git log -1 >actual &&
test_cmp expect-other actual
ok 68 - Do show note when ref is given in core.notesRef config
expecting success of 3301.69 'Do not show note when core.notesRef is overridden':
test_config core.notesRef "refs/notes/other" &&
GIT_NOTES_REF="refs/notes/wrong" git log -1 >actual &&
test_cmp expect-not-other actual
ok 69 - Do not show note when core.notesRef is overridden
expecting success of 3301.70 'Show all notes when notes.displayRef=refs/notes/*':
commit=$(git rev-parse HEAD) &&
parent=$(git rev-parse HEAD^) &&
cat >expect-both <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
${indent}6th
Notes:
${indent}order test
Notes (other):
${indent}other note
commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
${indent}5th
Notes:
${indent}replacement for deleted note
EOF
GIT_NOTES_REF=refs/notes/commits git notes add \
-m"replacement for deleted note" HEAD^ &&
GIT_NOTES_REF=refs/notes/commits git notes add -m"order test" &&
test_unconfig core.notesRef &&
test_config notes.displayRef "refs/notes/*" &&
git log -2 >actual &&
test_cmp expect-both actual
ok 70 - Show all notes when notes.displayRef=refs/notes/*
expecting success of 3301.71 'core.notesRef is implicitly in notes.displayRef':
test_config core.notesRef refs/notes/commits &&
test_config notes.displayRef refs/notes/other &&
git log -2 >actual &&
test_cmp expect-both actual
ok 71 - core.notesRef is implicitly in notes.displayRef
expecting success of 3301.72 'notes.displayRef can be given more than once':
test_unconfig core.notesRef &&
test_config notes.displayRef refs/notes/commits &&
git config --add notes.displayRef refs/notes/other &&
git log -2 >actual &&
test_cmp expect-both actual
ok 72 - notes.displayRef can be given more than once
expecting success of 3301.73 'notes.displayRef respects order':
commit=$(git rev-parse HEAD) &&
cat >expect-both-reversed <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
${indent}6th
Notes (other):
${indent}other note
Notes:
${indent}order test
EOF
test_config core.notesRef refs/notes/other &&
test_config notes.displayRef refs/notes/commits &&
git log -1 >actual &&
test_cmp expect-both-reversed actual
ok 73 - notes.displayRef respects order
expecting success of 3301.74 'notes.displayRef with no value handled gracefully':
test_must_fail git -c notes.displayRef log -0 --notes &&
test_must_fail git -c notes.displayRef diff-tree --notes HEAD
error: missing value for 'notes.displayref'
fatal: unable to parse 'notes.displayref' from command-line config
error: missing value for 'notes.displayref'
fatal: unable to parse 'notes.displayref' from command-line config
ok 74 - notes.displayRef with no value handled gracefully
expecting success of 3301.75 'GIT_NOTES_DISPLAY_REF works':
GIT_NOTES_DISPLAY_REF=refs/notes/commits:refs/notes/other \
git log -2 >actual &&
test_cmp expect-both actual
ok 75 - GIT_NOTES_DISPLAY_REF works
expecting success of 3301.76 'GIT_NOTES_DISPLAY_REF overrides config':
commit=$(git rev-parse HEAD) &&
parent=$(git rev-parse HEAD^) &&
cat >expect-none <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
${indent}6th
commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:17:13 2005 -0700
${indent}5th
EOF
test_config notes.displayRef "refs/notes/*" &&
GIT_NOTES_REF= GIT_NOTES_DISPLAY_REF= git log -2 >actual &&
test_cmp expect-none actual
ok 76 - GIT_NOTES_DISPLAY_REF overrides config
expecting success of 3301.77 '--show-notes=* adds to GIT_NOTES_DISPLAY_REF':
GIT_NOTES_REF= GIT_NOTES_DISPLAY_REF= git log --show-notes=* -2 >actual &&
test_cmp expect-both actual
ok 77 - --show-notes=* adds to GIT_NOTES_DISPLAY_REF
expecting success of 3301.78 '--no-standard-notes':
commit=$(git rev-parse HEAD) &&
cat >expect-commits <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:18:13 2005 -0700
${indent}6th
Notes:
${indent}order test
EOF
git log --no-standard-notes --show-notes=commits -1 >actual &&
test_cmp expect-commits actual
ok 78 - --no-standard-notes
expecting success of 3301.79 '--standard-notes':
test_config notes.displayRef "refs/notes/*" &&
git log --no-standard-notes --show-notes=commits \
--standard-notes -2 >actual &&
test_cmp expect-both actual
ok 79 - --standard-notes
expecting success of 3301.80 '--show-notes=ref accumulates':
git log --show-notes=other --show-notes=commits \
--no-standard-notes -1 >actual &&
test_cmp expect-both-reversed actual
ok 80 - --show-notes=ref accumulates
expecting success of 3301.81 'Allow notes on non-commits (trees, blobs, tags)':
test_config core.notesRef refs/notes/other &&
echo "Note on a tree" >expect &&
git notes add -m "Note on a tree" HEAD: &&
git notes show HEAD: >actual &&
test_cmp expect actual &&
echo "Note on a blob" >expect &&
git ls-tree --name-only HEAD >files &&
filename=$(head -n1 files) &&
git notes add -m "Note on a blob" HEAD:$filename &&
git notes show HEAD:$filename >actual &&
test_cmp expect actual &&
echo "Note on a tag" >expect &&
git tag -a -m "This is an annotated tag" foobar HEAD^ &&
git notes add -m "Note on a tag" foobar &&
git notes show foobar >actual &&
test_cmp expect actual
ok 81 - Allow notes on non-commits (trees, blobs, tags)
expecting success of 3301.82 'create note from other note with "git notes add -C"':
test_commit 7th &&
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:19:13 2005 -0700
${indent}7th
Notes:
${indent}order test
EOF
note=$(git notes list HEAD^) &&
git notes add -C $note &&
git log -1 >actual &&
test_cmp expect actual &&
git notes list HEAD^ >expect &&
git notes list HEAD >actual &&
test_cmp expect actual
[master fb01e0c] 7th
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 7th.t
ok 82 - create note from other note with "git notes add -C"
expecting success of 3301.83 'create note from non-existing note with "git notes add -C" fails':
test_commit 8th &&
test_must_fail git notes add -C deadbeef &&
test_must_fail git notes list HEAD
[master 9a4c31c] 8th
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 8th.t
fatal: failed to resolve 'deadbeef' as a valid ref.
error: no note found for object 9a4c31c7f722b5d517e92c64e932dd751e1413bf.
ok 83 - create note from non-existing note with "git notes add -C" fails
expecting success of 3301.84 'create note from non-blob with "git notes add -C" fails':
commit=$(git rev-parse --verify HEAD) &&
tree=$(git rev-parse --verify HEAD:) &&
test_must_fail git notes add -C $commit &&
test_must_fail git notes add -C $tree &&
test_must_fail git notes list HEAD
fatal: cannot read note data from non-blob object '9a4c31c7f722b5d517e92c64e932dd751e1413bf'.
fatal: cannot read note data from non-blob object '37f6454412e4ed89ae47782f956ed0fb573892f6'.
error: no note found for object 9a4c31c7f722b5d517e92c64e932dd751e1413bf.
ok 84 - create note from non-blob with "git notes add -C" fails
expecting success of 3301.85 'create note from blob with "git notes add -C" reuses blob id':
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:20:13 2005 -0700
${indent}8th
Notes:
${indent}This is a blob object
EOF
echo "This is a blob object" | git hash-object -w --stdin >blob &&
git notes add -C $(cat blob) &&
git log -1 >actual &&
test_cmp expect actual &&
git notes list HEAD >actual &&
test_cmp blob actual
ok 85 - create note from blob with "git notes add -C" reuses blob id
expecting success of 3301.86 'create note from other note with "git notes add -c"':
test_commit 9th &&
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:21:13 2005 -0700
${indent}9th
Notes:
${indent}yet another note
EOF
note=$(git notes list HEAD^^) &&
MSG="yet another note" git notes add -c $note &&
git log -1 >actual &&
test_cmp expect actual
[master 2e0db4b] 9th
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 9th.t
yet another note
ok 86 - create note from other note with "git notes add -c"
expecting success of 3301.87 'create note from non-existing note with "git notes add -c" fails':
test_commit 10th &&
test_must_fail env MSG="yet another note" git notes add -c deadbeef &&
test_must_fail git notes list HEAD
[master 7c3b87a] 10th
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 10th.t
fatal: failed to resolve 'deadbeef' as a valid ref.
error: no note found for object 7c3b87ab368f81e11b1ea87b2ab99a71ccd25406.
ok 87 - create note from non-existing note with "git notes add -c" fails
expecting success of 3301.88 'append to note from other note with "git notes append -C"':
commit=$(git rev-parse HEAD^) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:21:13 2005 -0700
${indent}9th
Notes:
${indent}yet another note
${indent}
${indent}yet another note
EOF
note=$(git notes list HEAD^) &&
git notes append -C $note HEAD^ &&
git log -1 HEAD^ >actual &&
test_cmp expect actual
ok 88 - append to note from other note with "git notes append -C"
expecting success of 3301.89 'create note from other note with "git notes append -c"':
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:22:13 2005 -0700
${indent}10th
Notes:
${indent}other note
EOF
note=$(git notes list HEAD^) &&
MSG="other note" git notes append -c $note &&
git log -1 >actual &&
test_cmp expect actual
other note
ok 89 - create note from other note with "git notes append -c"
expecting success of 3301.90 'append to note from other note with "git notes append -c"':
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:22:13 2005 -0700
${indent}10th
Notes:
${indent}other note
${indent}
${indent}yet another note
EOF
note=$(git notes list HEAD) &&
MSG="yet another note" git notes append -c $note &&
git log -1 >actual &&
test_cmp expect actual
yet another note
ok 90 - append to note from other note with "git notes append -c"
expecting success of 3301.91 'copy note with "git notes copy"':
commit=$(git rev-parse 4th) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:16:13 2005 -0700
${indent}4th
Notes:
${indent}This is a blob object
EOF
git notes copy 8th 4th &&
git log 3rd..4th >actual &&
test_cmp expect actual &&
git notes list 4th >expect &&
git notes list 8th >actual &&
test_cmp expect actual
ok 91 - copy note with "git notes copy"
expecting success of 3301.92 'copy note with "git notes copy" with default':
test_commit 11th &&
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:23:13 2005 -0700
${indent}11th
Notes:
${indent}other note
${indent}
${indent}yet another note
EOF
git notes copy HEAD^ &&
git log -1 >actual &&
test_cmp expect actual &&
git notes list HEAD^ >expect &&
git notes list HEAD >actual &&
test_cmp expect actual
[master a446fff] 11th
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 11th.t
ok 92 - copy note with "git notes copy" with default
expecting success of 3301.93 'prevent overwrite with "git notes copy"':
test_must_fail git notes copy HEAD~2 HEAD &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:23:13 2005 -0700
${indent}11th
Notes:
${indent}other note
${indent}
${indent}yet another note
EOF
git log -1 >actual &&
test_cmp expect actual &&
git notes list HEAD^ >expect &&
git notes list HEAD >actual &&
test_cmp expect actual
error: Cannot copy notes. Found existing notes for object a446fff8777efdc6eb8f4b7c8a5ff699484df0d5. Use '-f' to overwrite existing notes
ok 93 - prevent overwrite with "git notes copy"
expecting success of 3301.94 'allow overwrite with "git notes copy -f"':
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:23:13 2005 -0700
${indent}11th
Notes:
${indent}This is a blob object
EOF
git notes copy -f HEAD~3 HEAD &&
git log -1 >actual &&
test_cmp expect actual &&
git notes list HEAD~3 >expect &&
git notes list HEAD >actual &&
test_cmp expect actual
Overwriting existing notes for object a446fff8777efdc6eb8f4b7c8a5ff699484df0d5
ok 94 - allow overwrite with "git notes copy -f"
expecting success of 3301.95 'allow overwrite with "git notes copy -f" with default':
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:23:13 2005 -0700
${indent}11th
Notes:
${indent}yet another note
${indent}
${indent}yet another note
EOF
git notes copy -f HEAD~2 &&
git log -1 >actual &&
test_cmp expect actual &&
git notes list HEAD~2 >expect &&
git notes list HEAD >actual &&
test_cmp expect actual
Overwriting existing notes for object a446fff8777efdc6eb8f4b7c8a5ff699484df0d5
ok 95 - allow overwrite with "git notes copy -f" with default
expecting success of 3301.96 'cannot copy note from object without notes':
test_commit 12th &&
test_commit 13th &&
test_must_fail git notes copy HEAD^ HEAD
[master 65e263d] 12th
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 12th.t
[master e871aa6] 13th
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 13th.t
error: missing notes on source object 65e263ded02ae4e8839bc151095113737579dc12. Cannot copy.
ok 96 - cannot copy note from object without notes
expecting success of 3301.97 'git notes copy --stdin':
commit=$(git rev-parse HEAD) &&
parent=$(git rev-parse HEAD^) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:25:13 2005 -0700
${indent}13th
Notes:
${indent}yet another note
${indent}
${indent}yet another note
commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:24:13 2005 -0700
${indent}12th
Notes:
${indent}other note
${indent}
${indent}yet another note
EOF
from=$(git rev-parse HEAD~3) &&
to=$(git rev-parse HEAD^) &&
echo "$from" "$to" >copy &&
from=$(git rev-parse HEAD~2) &&
to=$(git rev-parse HEAD) &&
echo "$from" "$to" >>copy &&
git notes copy --stdin <copy &&
git log -2 >actual &&
test_cmp expect actual &&
git notes list HEAD~2 >expect &&
git notes list HEAD >actual &&
test_cmp expect actual &&
git notes list HEAD~3 >expect &&
git notes list HEAD^ >actual &&
test_cmp expect actual
ok 97 - git notes copy --stdin
expecting success of 3301.98 'git notes copy --for-rewrite (unconfigured)':
test_commit 14th &&
test_commit 15th &&
commit=$(git rev-parse HEAD) &&
parent=$(git rev-parse HEAD^) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
${indent}15th
commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:26:13 2005 -0700
${indent}14th
EOF
from=$(git rev-parse HEAD~3) &&
to=$(git rev-parse HEAD^) &&
echo "$from" "$to" >copy &&
from=$(git rev-parse HEAD~2) &&
to=$(git rev-parse HEAD) &&
echo "$from" "$to" >>copy &&
git notes copy --for-rewrite=foo <copy &&
git log -2 >actual &&
test_cmp expect actual
[master 07c85d7] 14th
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 14th.t
[master 4acf42e] 15th
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 15th.t
ok 98 - git notes copy --for-rewrite (unconfigured)
expecting success of 3301.99 'git notes copy --for-rewrite (enabled)':
commit=$(git rev-parse HEAD) &&
parent=$(git rev-parse HEAD^) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
${indent}15th
Notes:
${indent}yet another note
${indent}
${indent}yet another note
commit $parent
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:26:13 2005 -0700
${indent}14th
Notes:
${indent}other note
${indent}
${indent}yet another note
EOF
test_config notes.rewriteMode overwrite &&
test_config notes.rewriteRef "refs/notes/*" &&
from=$(git rev-parse HEAD~3) &&
to=$(git rev-parse HEAD^) &&
echo "$from" "$to" >copy &&
from=$(git rev-parse HEAD~2) &&
to=$(git rev-parse HEAD) &&
echo "$from" "$to" >>copy &&
git notes copy --for-rewrite=foo <copy &&
git log -2 >actual &&
test_cmp expect actual
ok 99 - git notes copy --for-rewrite (enabled)
expecting success of 3301.100 'git notes copy --for-rewrite (disabled)':
test_config notes.rewrite.bar false &&
from=$(git rev-parse HEAD~3) &&
to=$(git rev-parse HEAD) &&
echo "$from" "$to" >copy &&
git notes copy --for-rewrite=bar <copy &&
git log -2 >actual &&
test_cmp expect actual
ok 100 - git notes copy --for-rewrite (disabled)
expecting success of 3301.101 'git notes copy --for-rewrite (overwrite)':
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
${indent}15th
Notes:
${indent}a fresh note
EOF
git notes add -f -m"a fresh note" HEAD^ &&
test_config notes.rewriteMode overwrite &&
test_config notes.rewriteRef "refs/notes/*" &&
from=$(git rev-parse HEAD^) &&
to=$(git rev-parse HEAD) &&
echo "$from" "$to" >copy &&
git notes copy --for-rewrite=foo <copy &&
git log -1 >actual &&
test_cmp expect actual
Overwriting existing notes for object 07c85d77059393ed0154b8c96906547a59dfcddd
ok 101 - git notes copy --for-rewrite (overwrite)
expecting success of 3301.102 'git notes copy --for-rewrite (ignore)':
test_config notes.rewriteMode ignore &&
test_config notes.rewriteRef "refs/notes/*" &&
from=$(git rev-parse HEAD^) &&
to=$(git rev-parse HEAD) &&
echo "$from" "$to" >copy &&
git notes copy --for-rewrite=foo <copy &&
git log -1 >actual &&
test_cmp expect actual
ok 102 - git notes copy --for-rewrite (ignore)
expecting success of 3301.103 'git notes copy --for-rewrite (append)':
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
${indent}15th
Notes:
${indent}a fresh note
${indent}
${indent}another fresh note
EOF
git notes add -f -m"another fresh note" HEAD^ &&
test_config notes.rewriteMode concatenate &&
test_config notes.rewriteRef "refs/notes/*" &&
from=$(git rev-parse HEAD^) &&
to=$(git rev-parse HEAD) &&
echo "$from" "$to" >copy &&
git notes copy --for-rewrite=foo <copy &&
git log -1 >actual &&
test_cmp expect actual
Overwriting existing notes for object 07c85d77059393ed0154b8c96906547a59dfcddd
ok 103 - git notes copy --for-rewrite (append)
expecting success of 3301.104 'git notes copy --for-rewrite (append two to one)':
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
${indent}15th
Notes:
${indent}a fresh note
${indent}
${indent}another fresh note
${indent}
${indent}append 1
${indent}
${indent}append 2
EOF
git notes add -f -m"append 1" HEAD^ &&
git notes add -f -m"append 2" HEAD^^ &&
test_config notes.rewriteMode concatenate &&
test_config notes.rewriteRef "refs/notes/*" &&
from=$(git rev-parse HEAD^) &&
to=$(git rev-parse HEAD) &&
echo "$from" "$to" >copy &&
from=$(git rev-parse HEAD^^) &&
to=$(git rev-parse HEAD) &&
echo "$from" "$to" >>copy &&
git notes copy --for-rewrite=foo <copy &&
git log -1 >actual &&
test_cmp expect actual
Overwriting existing notes for object 07c85d77059393ed0154b8c96906547a59dfcddd
Overwriting existing notes for object e871aa61182b1d95d0a6fb75445d891722863b6b
ok 104 - git notes copy --for-rewrite (append two to one)
expecting success of 3301.105 'git notes copy --for-rewrite (append empty)':
git notes remove HEAD^ &&
test_config notes.rewriteMode concatenate &&
test_config notes.rewriteRef "refs/notes/*" &&
from=$(git rev-parse HEAD^) &&
to=$(git rev-parse HEAD) &&
echo "$from" "$to" >copy &&
git notes copy --for-rewrite=foo <copy &&
git log -1 >actual &&
test_cmp expect actual
Removing note for object HEAD^
ok 105 - git notes copy --for-rewrite (append empty)
expecting success of 3301.106 'GIT_NOTES_REWRITE_MODE works':
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
${indent}15th
Notes:
${indent}replacement note 1
EOF
test_config notes.rewriteMode concatenate &&
test_config notes.rewriteRef "refs/notes/*" &&
git notes add -f -m"replacement note 1" HEAD^ &&
from=$(git rev-parse HEAD^) &&
to=$(git rev-parse HEAD) &&
echo "$from" "$to" >copy &&
GIT_NOTES_REWRITE_MODE=overwrite git notes copy --for-rewrite=foo <copy &&
git log -1 >actual &&
test_cmp expect actual
ok 106 - GIT_NOTES_REWRITE_MODE works
expecting success of 3301.107 'GIT_NOTES_REWRITE_REF works':
commit=$(git rev-parse HEAD) &&
cat >expect <<-EOF &&
commit $commit
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:27:13 2005 -0700
${indent}15th
Notes:
${indent}replacement note 2
EOF
git notes add -f -m"replacement note 2" HEAD^ &&
test_config notes.rewriteMode overwrite &&
test_unconfig notes.rewriteRef &&
from=$(git rev-parse HEAD^) &&
to=$(git rev-parse HEAD) &&
echo "$from" "$to" >copy &&
GIT_NOTES_REWRITE_REF=refs/notes/commits:refs/notes/other \
git notes copy --for-rewrite=foo <copy &&
git log -1 >actual &&
test_cmp expect actual
Overwriting existing notes for object 07c85d77059393ed0154b8c96906547a59dfcddd
ok 107 - GIT_NOTES_REWRITE_REF works
expecting success of 3301.108 'GIT_NOTES_REWRITE_REF overrides config':
git notes add -f -m"replacement note 3" HEAD^ &&
test_config notes.rewriteMode overwrite &&
test_config notes.rewriteRef refs/notes/other &&
from=$(git rev-parse HEAD^) &&
to=$(git rev-parse HEAD) &&
echo "$from" "$to" >copy &&
GIT_NOTES_REWRITE_REF=refs/notes/commits \
git notes copy --for-rewrite=foo <copy &&
git log -1 >actual &&
grep "replacement note 3" actual
Overwriting existing notes for object 07c85d77059393ed0154b8c96906547a59dfcddd
replacement note 3
ok 108 - GIT_NOTES_REWRITE_REF overrides config
expecting success of 3301.109 'git notes copy diagnoses too many or too few arguments':
test_must_fail git notes copy 2>error &&
test_i18ngrep "too few arguments" error &&
test_must_fail git notes copy one two three 2>error &&
test_i18ngrep "too many arguments" error
error: too few arguments
error: too many arguments
ok 109 - git notes copy diagnoses too many or too few arguments
expecting success of 3301.110 'git notes get-ref expands refs/heads/main to refs/notes/refs/heads/main':
test_unconfig core.notesRef &&
sane_unset GIT_NOTES_REF &&
echo refs/notes/refs/heads/main >expect &&
git notes --ref=refs/heads/main get-ref >actual &&
test_cmp expect actual
ok 110 - git notes get-ref expands refs/heads/main to refs/notes/refs/heads/main
expecting success of 3301.111 'git notes get-ref (no overrides)':
test_unconfig core.notesRef &&
sane_unset GIT_NOTES_REF &&
echo refs/notes/commits >expect &&
git notes get-ref >actual &&
test_cmp expect actual
ok 111 - git notes get-ref (no overrides)
expecting success of 3301.112 'git notes get-ref (core.notesRef)':
test_config core.notesRef refs/notes/foo &&
echo refs/notes/foo >expect &&
git notes get-ref >actual &&
test_cmp expect actual
ok 112 - git notes get-ref (core.notesRef)
expecting success of 3301.113 'git notes get-ref (GIT_NOTES_REF)':
echo refs/notes/bar >expect &&
GIT_NOTES_REF=refs/notes/bar git notes get-ref >actual &&
test_cmp expect actual
ok 113 - git notes get-ref (GIT_NOTES_REF)
expecting success of 3301.114 'git notes get-ref (--ref)':
echo refs/notes/baz >expect &&
GIT_NOTES_REF=refs/notes/bar git notes --ref=baz get-ref >actual &&
test_cmp expect actual
ok 114 - git notes get-ref (--ref)
expecting success of 3301.115 'setup testing of empty notes':
test_unconfig core.notesRef &&
test_commit 16th &&
empty_blob=$(git hash-object -w /dev/null) &&
echo "$empty_blob" >expect_empty
[master 21d0abc] 16th
Author: A U Thor <author@example.com>
1 file changed, 1 insertion(+)
create mode 100644 16th.t
ok 115 - setup testing of empty notes
expecting success of 3301.116 ''git notes add' removes empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes add &&
test_must_fail git notes list HEAD
Object HEAD has no note
Removing note for object 21d0abcd10f591529d5148ae8bc7703fc1f73398
error: no note found for object 21d0abcd10f591529d5148ae8bc7703fc1f73398.
ok 116 - 'git notes add' removes empty note
expecting success of 3301.117 ''git notes add --allow-empty' stores empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes add --allow-empty &&
git notes list HEAD >actual &&
test_cmp expect_empty actual
Object HEAD has no note
ok 117 - 'git notes add --allow-empty' stores empty note
expecting success of 3301.118 ''git notes add -F /dev/null' removes empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes add -F /dev/null &&
test_must_fail git notes list HEAD
Removing note for object HEAD
Removing note for object 21d0abcd10f591529d5148ae8bc7703fc1f73398
error: no note found for object 21d0abcd10f591529d5148ae8bc7703fc1f73398.
ok 118 - 'git notes add -F /dev/null' removes empty note
expecting success of 3301.119 ''git notes add -F /dev/null --allow-empty' stores empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes add -F /dev/null --allow-empty &&
git notes list HEAD >actual &&
test_cmp expect_empty actual
Object HEAD has no note
ok 119 - 'git notes add -F /dev/null --allow-empty' stores empty note
expecting success of 3301.120 ''git notes add -m ""' removes empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes add -m "" &&
test_must_fail git notes list HEAD
Removing note for object HEAD
Removing note for object 21d0abcd10f591529d5148ae8bc7703fc1f73398
error: no note found for object 21d0abcd10f591529d5148ae8bc7703fc1f73398.
ok 120 - 'git notes add -m ""' removes empty note
expecting success of 3301.121 ''git notes add -m "" --allow-empty' stores empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes add -m "" --allow-empty &&
git notes list HEAD >actual &&
test_cmp expect_empty actual
Object HEAD has no note
ok 121 - 'git notes add -m "" --allow-empty' stores empty note
expecting success of 3301.122 ''git notes add -c "$empty_blob"' removes empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes add -c "$empty_blob" &&
test_must_fail git notes list HEAD
Removing note for object HEAD
Removing note for object 21d0abcd10f591529d5148ae8bc7703fc1f73398
error: no note found for object 21d0abcd10f591529d5148ae8bc7703fc1f73398.
ok 122 - 'git notes add -c "$empty_blob"' removes empty note
expecting success of 3301.123 ''git notes add -c "$empty_blob" --allow-empty' stores empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes add -c "$empty_blob" --allow-empty &&
git notes list HEAD >actual &&
test_cmp expect_empty actual
Object HEAD has no note
ok 123 - 'git notes add -c "$empty_blob" --allow-empty' stores empty note
expecting success of 3301.124 ''git notes add -C "$empty_blob"' removes empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes add -C "$empty_blob" &&
test_must_fail git notes list HEAD
Removing note for object HEAD
Removing note for object 21d0abcd10f591529d5148ae8bc7703fc1f73398
error: no note found for object 21d0abcd10f591529d5148ae8bc7703fc1f73398.
ok 124 - 'git notes add -C "$empty_blob"' removes empty note
expecting success of 3301.125 ''git notes add -C "$empty_blob" --allow-empty' stores empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes add -C "$empty_blob" --allow-empty &&
git notes list HEAD >actual &&
test_cmp expect_empty actual
Object HEAD has no note
ok 125 - 'git notes add -C "$empty_blob" --allow-empty' stores empty note
expecting success of 3301.126 ''git notes append' removes empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes append &&
test_must_fail git notes list HEAD
Removing note for object HEAD
Removing note for object 21d0abcd10f591529d5148ae8bc7703fc1f73398
error: no note found for object 21d0abcd10f591529d5148ae8bc7703fc1f73398.
ok 126 - 'git notes append' removes empty note
expecting success of 3301.127 ''git notes append --allow-empty' stores empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes append --allow-empty &&
git notes list HEAD >actual &&
test_cmp expect_empty actual
Object HEAD has no note
ok 127 - 'git notes append --allow-empty' stores empty note
expecting success of 3301.128 ''git notes append -F /dev/null' removes empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes append -F /dev/null &&
test_must_fail git notes list HEAD
Removing note for object HEAD
Removing note for object 21d0abcd10f591529d5148ae8bc7703fc1f73398
error: no note found for object 21d0abcd10f591529d5148ae8bc7703fc1f73398.
ok 128 - 'git notes append -F /dev/null' removes empty note
expecting success of 3301.129 ''git notes append -F /dev/null --allow-empty' stores empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes append -F /dev/null --allow-empty &&
git notes list HEAD >actual &&
test_cmp expect_empty actual
Object HEAD has no note
ok 129 - 'git notes append -F /dev/null --allow-empty' stores empty note
expecting success of 3301.130 ''git notes append -m ""' removes empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes append -m "" &&
test_must_fail git notes list HEAD
Removing note for object HEAD
Removing note for object 21d0abcd10f591529d5148ae8bc7703fc1f73398
error: no note found for object 21d0abcd10f591529d5148ae8bc7703fc1f73398.
ok 130 - 'git notes append -m ""' removes empty note
expecting success of 3301.131 ''git notes append -m "" --allow-empty' stores empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes append -m "" --allow-empty &&
git notes list HEAD >actual &&
test_cmp expect_empty actual
Object HEAD has no note
ok 131 - 'git notes append -m "" --allow-empty' stores empty note
expecting success of 3301.132 ''git notes append -c "$empty_blob"' removes empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes append -c "$empty_blob" &&
test_must_fail git notes list HEAD
Removing note for object HEAD
Removing note for object 21d0abcd10f591529d5148ae8bc7703fc1f73398
error: no note found for object 21d0abcd10f591529d5148ae8bc7703fc1f73398.
ok 132 - 'git notes append -c "$empty_blob"' removes empty note
expecting success of 3301.133 ''git notes append -c "$empty_blob" --allow-empty' stores empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes append -c "$empty_blob" --allow-empty &&
git notes list HEAD >actual &&
test_cmp expect_empty actual
Object HEAD has no note
ok 133 - 'git notes append -c "$empty_blob" --allow-empty' stores empty note
expecting success of 3301.134 ''git notes append -C "$empty_blob"' removes empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes append -C "$empty_blob" &&
test_must_fail git notes list HEAD
Removing note for object HEAD
Removing note for object 21d0abcd10f591529d5148ae8bc7703fc1f73398
error: no note found for object 21d0abcd10f591529d5148ae8bc7703fc1f73398.
ok 134 - 'git notes append -C "$empty_blob"' removes empty note
expecting success of 3301.135 ''git notes append -C "$empty_blob" --allow-empty' stores empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes append -C "$empty_blob" --allow-empty &&
git notes list HEAD >actual &&
test_cmp expect_empty actual
Object HEAD has no note
ok 135 - 'git notes append -C "$empty_blob" --allow-empty' stores empty note
expecting success of 3301.136 ''git notes edit' removes empty note':
test_might_fail git notes remove HEAD &&
MSG= git notes edit &&
test_must_fail git notes list HEAD
Removing note for object HEAD
Removing note for object 21d0abcd10f591529d5148ae8bc7703fc1f73398
error: no note found for object 21d0abcd10f591529d5148ae8bc7703fc1f73398.
ok 136 - 'git notes edit' removes empty note
expecting success of 3301.137 ''git notes edit --allow-empty' stores empty no